docker的容器管理

创建并且启动一个nginx容器

docker run -d -p 80:80 nginx:latest  
run(创建并运行一个容器)
-d 放在后台
-p 端口映射
-v  源地址(宿主机):目标地址(容器)

创建一个centos系统的容器,并且进入到系统里面

nginx docker镜像的名字
docker run -it --name centos6 centos:6.9 /bin/bash
-it   分配交互式的终端
--name 指定容器的名字
/bin/sh覆盖容器的初始命令 

启动容器***

docker run image_name
docker run -it image_name CMD
docker run == docker create  + docker start
docker run == docker container run

查看container下面对应命令 在这里插入图片描述

后者是缩写:docker container ps -a == docker ps -a 在这里插入图片描述

停止容器

docker stop CONTAINER_ID

杀死容器

docker kill container_name

查看容器列表


docker ps
docker ps –a 


#查看容器详细信息,长格式
docker ps --no-trunc

进入容器(目的,调试,排错)

***** docker exec  (会分配一个新的终端tty)
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it  容器id或容器名字 /bin/bash(/bin/sh)
#docker attach(使用同一个终端)
#docker attach [OPTIONS] CONTAINER
#nsenter(安装yum install -y util-linux 弃用)

删除容器

docker rm

批量删除容器

docker rm -f `docker ps -a -q`

总结:docker容器内的第一个进程(初始命令)必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

业务在容器中运行:夯住+启动服务

注释:容器一直存活的原因,因为启动nginx服务执行一个nginx -g 'daemon off;' 所以能保持服务一直夯住 可以了解一下nginx命令对应的参数。

docker run  -d -p 80:80 nginx:latest #镜像后面默认是执行nginx -g 'daemon off;'

在这里插入图片描述

如果容器镜像后面跟指定命令**(镜像后面接参数,系统认为执行命令)**,比如/bin/bash,容器直接就死掉了 因为/bin/bash命令执行完无法夯筑,所以容器直接死掉了 在这里插入图片描述

如果镜像后面接命令tail -f /etc/hosts。就能够一直夯住,但是有一个问题,没有启动nginx服务 所以只启动了容器,但是没有运行nginx服务。 在这里插入图片描述

总结: 业务在容器中运行:夯住+启动服务

解决docker创建容器警告问题

问题描述 在这里插入图片描述

解决办法:

# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
    net.ipv4.ip_forward=1

重启network服务
# systemctl restart network

查看是否修改成功
#  sysctl net.ipv4.ip_forward

如果返回为“ net.ipv4.ip_forward = 1 ”则表示成功了

这时,重启容器即可 问题解决 在这里插入图片描述