Docker常用命令
一、镜像 image 相关
1、列出本地主机镜像
docker images
2、删除镜像(使用标签删除)
例如有以下镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/mysql latest 5195076672a7 2 weeks ago 371 MB
registry.cn-hangzhou.aliyuncs.com/base-img/pod-infrastructure latest 34d3450d733b 14 months ago 205 MB
docker.io/kubeguide/tomcat-app v2 00beaa1d956d 20 months ago 358 MB
要删除 registry.cn-hangzhou.aliyuncs.com/base-img/pod-infrastructure 镜像
docker rmi registry.cn-hangzhou.aliyuncs.com/base-img/pod-infrastructure:latest
3、删除镜像(使用ImageId删除)
例如有以下镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/mysql latest 5195076672a7 2 weeks ago 371 MB
registry.cn-hangzhou.aliyuncs.com/base-img/pod-infrastructure latest 34d3450d733b 14 months ago 205 MB
docker.io/kubeguide/tomcat-app v2 00beaa1d956d 20 months ago 358 MB
要删除 registry.cn-hangzhou.aliyuncs.com/base-img/pod-infrastructure 镜像,IMAGE ID只要能与其它镜像区分开就可以使用ID前几位删除镜像
docker rmi 34d3
删除所有镜像文件
docker image rm $(docker image ls -a -q)
4、导出镜像文件,用于迁移存入本地镜像
root@vultr:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/rhel7/pod-infrastructure latest 99965fb98423 5 months ago 209 MB
docker save -o pod-infrastructure.tar registry.access.redhat.com/rhel7/pod-infrastructure:latest
5、添加(修改)镜像名
可以创建一个新的镜像名,这个镜像实际还是引用了之前的镜像,如果要实现修改,可以添加镜像名后再删除之前的镜像。
使用docker images时,可能会出现REPOSITORY 和TAG均为none的镜像,如下图
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
#例子
# docker tag f66f4bd9b894 registry.access.redhat.com/rhel7/pod-infrastructure:latest
二、容器相关
1、创建容器,处于停止状态
创建centos容器实例,版本为latest;本地有镜像则从本地取,没有从远程拉取,创建成功后返回容器ID
docker create centos:7.2.1511
2、创建并启动容器
本地有则从本地取,没有从远程拉取镜像
docker run centos:7.2.1511
docker run -ti centos:7.2.1511 /bin/bash
#后台运行
docker run -dti centos:7.2.1511 /bin/bash
3、列出容器实例
正在运行的容器:
docker container ls
[root@benserver ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abdbb0b0b2ca friendlyhello "python app.py" 7 minutes ago Up 7 minutes 0.0.0.0:4000->80/tcp fervent_almeida
列出全部容器:
[root@benserver ~]# docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abdbb0b0b2ca friendlyhello "python app.py" 11 minutes ago Up 11 minutes 0.0.0.0:4000->80/tcp fervent_almeida
f4ea6c3f3b5a friendlyhello "python app.py" 42 minutes ago Exited (0) 24 minutes ago kind_hypatia
5b66b4a723d6 hello-world "/hello" 48 minutes ago Exited (0) 48 minutes ago stoic_stallman
58d7cfb6c42e ubuntu "/bin/bash" About an hour ago Exited (0) About an hour ago testubuntu
4、停止容器
停止容器Id为abdbb0b0b2ca的容器
[root@benserver ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abdbb0b0b2ca friendlyhello "python app.py" 23 minutes ago Up 23 minutes 0.0.0.0:4000->80/tcp fervent_almeida
docker container stop abdbb0b0b2ca
强制停止容器
docker container kill <hash>
5、删除容器
删除指定容器
docker container rm <hash>
删除所有容器
docker container rm $(docker container ls -a -q)
6、使用docker exec进入Docker容器
docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些
docker ps
docker exec -it 775c7c9ee1e1 /bin/bash
7、重启容器
docker restart <name>
8、列出Docker在运行的进程
docker ps <name>