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 ”则表示成功了
这时,重启容器即可 问题解决