Docker常用指令备忘录

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