docker的容器管理

创建并且启动一个nginx容器

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

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

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

启动容器***

docker run image_name
docker run -it image_name CMD
docker run == docker create  + docker start
docker run == docker container run
  • 1.
  • 2.
  • 3.
  • 4.

查看container下面对应命令
06.docker容器管理_nginx

后者是缩写:docker container ps -a == docker ps -a
06.docker容器管理_docker_02

停止容器

docker stop CONTAINER_ID
  • 1.

杀死容器

docker kill container_name
  • 1.

查看容器列表


docker ps
docker ps –a 


#查看容器详细信息,长格式
docker ps --no-trunc
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

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

***** 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 弃用)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

删除容器

docker rm
  • 1.

批量删除容器

docker rm -f `docker ps -a -q`
  • 1.

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

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

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

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

06.docker容器管理_插入图片_03

如果容器镜像后面跟指定命令**(镜像后面接参数,系统认为执行命令)**,比如/bin/bash,容器直接就死掉了
因为/bin/bash命令执行完无法夯筑,所以容器直接死掉了
06.docker容器管理_docker_04

如果镜像后面接命令tail -f /etc/hosts。就能够一直夯住,但是有一个问题,没有启动nginx服务
所以只启动了容器,但是没有运行nginx服务。
06.docker容器管理_docker_05

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

解决docker创建容器警告问题

问题描述
06.docker容器管理_docker容器管理_06

解决办法:

# 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 ”则表示成功了
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

这时,重启容器即可
问题解决
06.docker容器管理_docker_07