Docker常用命令
2018-03-13 14:51
579 查看
Docker镜像常用指令
启动Dockersudo systemctl start docker
查看Docker版本
docker version
搜索镜像
docker search用来搜索
Dcoker Hub中的镜像。例如 :
docker search java
下载镜像
使用
docker pull从
Docker Rigistry中下载镜像,例如:
docker pull java
列出镜像
docker images即可列出已经下载的镜像。
docker images
删除本地镜像
删除指定名称的镜像
docker rmi hello-world docker rmi -f hello-world //强制删除
删除所有镜像
docker rmi -f $(docker images)
Docker容器常用指令
新建并启动容器使用
docker run命令来新建并启动一个容器。选项列表:
-d: 表示后台运行
-P: 随机端口映射
-p: 指定端口映射,有以下可选参数:
ip:hostPort:containerPort
ip::containerPort
ip:hostPort:containerPort
containerPort
--network: 指定网络模式,该选项有以下可选参数:
--network=bridge: 默认选项,表示连接到默认网关。
[b]
--network=host: 容器使用宿主的网络。
--network=container: NAME_or_ID,告诉Docker让新建的容器使用自己已有的网络配置。
--network=none: 不配置该容器的网络,用户可自定义网络配置。
例1:
docker run java /bin/echo 'Hello world'
例2:
docker run -d -p 91:80 nginx
启动一个nginx容器,没有镜像会先下载一个镜像。
-d是后台运行,
-p开放容器端口到宿主机端口。
访问
http://Docker主机IP:91/就会看到;
列出容器
使用
docker ps命令,默认可列出运行中的容器。要列出所有容器可以使用
docker ps -a
CONTAIER_ID : 容器id
IMAGE : 镜像名称
COMMAND : 表示启动时运行的命令
CREATED : 创建时间
STATUS : 容器运行的状态,UP表示运行中,Existed表示已经停止
PORTS : 容器对外的端口
NAMES : 表示容器名称,由Docker默认生成,也可使用
docker run命令的
--name选项自行指定
停止容器
使用
docker stop命令停止容器。
docker stop de4984c7ea98 //根据 CONTAIER_ID 来删除 docker stop sad_noyce //根据 NAMES 来删除
de4984c7ea98可以从
docker ps命令中查看运行容器的
CONTAIER_ID。同理
sad_noyce表示容器名称。
强制停止容器
可使用
docker kill来强制停止容器。
docker kill de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
启动已停止的容器
使用
docker run命令,即新建并重启一个容器。对已经停止的容器,可以用
docker start来启动。例如:
docker start de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
重启容器
使用
docker restart来重启容器。该命令相当于先执行
docker stop然后执行
docker start
进入容器
某些场景下,可能要进入运行中的容器。
使用
docker attach进入容器
docker attach de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
当多个窗口同事
attach一个容器的时候,所有的窗口都同步显示,有一个阻塞的话,其他窗口也无法操作。所以并不太方便。
使用
nsenter进入容器
首先要找到容器的第一个进程PID
docker inspect --format "{{.State.Pid}}" de4984c7ea98 //使用时,只需要改de4984c7ea98为你的 CONTAIER_ID 即可
然后根据PID,使用一下命令进入容器。
nsenter --target 3028 --mount --uts --ipc --net --pid //3028 是容器的PID
删除容器
使用
docker rm即可删除指定容器。
例1:
docker rm de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
该命令只能删除已经停止运行的容器,如需删除正在运行的容器,需要使用
-f参数
例2:
docker rm -f de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
你也可以删除所有容器,例如:
docker rm -f $(docker ps -a -q)