0.概述
Docker常用的指令,方便以后查找
1.查看镜像
docker images
2.拉取镜像
docker pull <镜像名:tag> #从官网拉取镜像
docker search <镜像名> #搜索在线可用镜像名
3.查看容器
docker ps #查看正在运行的容器
docker ps -l #查看最后退出的容器的ID
docker ps -a #查看所有的容器,包括退出的。
docker start [PID] //启动停止的容器
docker stop [PID] //停止运行的容器
docker kill [PID] //杀死容器
4.设置后台运行容器
docker run -d -i –name zkServer -p 2181:2181 index.tenxcloud.com/sdvdxl/zookeeper
-d :后台运行
–name:设置容器名称
-p:设置端口对应
-i:保持输入流开放即使没有附加输入流
-t=false:分配一个伪造的终端输入
5.删除容器与删除镜像
docker rm$(docker ps -a -q) #删除所有容器
docker rm <容器名or ID> #删除单个容器
docker rmi
docker rmi$(docker images | grep none | awk ‘{print $3}’ | sort -r)
6.进入容器
docker attach [ID或名称]
可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。
但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
docker exec -it [ID或名称] /bin/sh
只使用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令
返回值都可以正确获取。
只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin
的输出,无法看到命令执行情况。
使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致
整个容器退出。
这种方式可以替代ssh或者nsenter、nsinit方式,在容器内进行操作。
7.常见错误
端口映射配置前需要确保iptables服务开启
若遇到以下错误:COMMAND_FAILED: ‘/sbin/iptables -t nat -A DOCKER -p tcp -d 0/0 –dport 8111 -j DNAT –to-destination 172.17.0.6:8111 ! -i docker0’ failed: iptables: No chain/target/match by that name.
执行以下操作:
service docker stop
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
service docker start
8.Dockerfile构建命令
从fesaDockerFile中构建容器
docker build -t fesa:latest - < fesaDockerFile