一、镜像
以Nginx为例:
1. 搜索镜像
# docker search nginx
2. 查找star数>=100的镜像
# docker search --filter=stars=100 nginx
3. 拉取镜像(不加tag,则默认拉取latest版本)
# docker pull docker.io/nginx
4. 查看已经下载的镜像
[root@localhost ~]# docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 881bd08c0b08 13 days ago 109 MB
daocloud.io/library/nginx latest 7042885a156a 2 months ago 109 MB
library/mysql 8.0.2 46c7a6759627 18 months ago 266 MB
daocloud.io/library/nginx 1.13.2 2f7f7bce8929 20 months ago 108 MB
注意到「IMAGE ID」即镜像ID那一列,之后操作镜像需要用到。
5.查看所有镜像的ID
[root@localhost ~]# docker image list -q
881bd08c0b08
7042885a156a
46c7a6759627
2f7f7bce8929
bbdc71e950ea
6. 删除镜像
# docker rmi 镜像ID
7. 如果镜像正在被使用(并非run),需要强制删除
# docker rmi 镜像ID --force
8. 删除多个镜像
# docker rmi A镜像ID, B镜像ID
多个镜像ID,用逗号分隔即可。
二、容器
以 docker.io/nginx 为例,镜像ID=881bd08c0b08:
1. 运行容器
# docker run -it 镜像ID /bin/bash
以后台模式运行一个容器:
# docker run -it -d 镜像ID /bin/bash
给容器命名:
# docker run -it --name 容器名称 镜像ID /bin/bash
如,创建一个名称为「myNginx」,在后台运行的容器:
# docker run -it -d --name myNginx 881bd /bin/bash
注意,每次执行run命令时,都会运行一个全新的容器,因此容器ID也是不同的。
2. 创建一个容器,但不启动
# docker create -it 镜像ID /bin/bash
注意,参数 -it 如果忘记加,可能造成容器既连不上也启动不成功,多数是因为创建没成功的原因。
3. 查看所有处于运行状态的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1fcd11899505 docker.io/nginx "/bin/bash" 2 minutes ago Up 2 minutes 80/tcp zen_engelbart
注意到「CONTAINER ID」即容器ID那一列,之后操作容器需要用到。
4. 查看所有容器
# docker ps -a
5. 关闭容器
# docker stop 容器ID
6. 重启容器
# docker restart 容器ID
7. 断开与容器的连接但不关闭容器
快捷键 ctrl + p + q
8. 连接容器(容器此时处于运行状态)
# docker attach 容器ID
9. 查看所有容器的ID
# docker ps -a -q
10. 断开与容器的连接,并且关闭容器
# exit
同样效果可用快捷键 「Ctrl + D」。
11. 查看容器详细信息
# docker inspect 容器ID
12. 查看容器的运行日志,即在容器中的操作记录
# docker logs 容器ID
13. 显示一个容器里的进程信息
# docker top 容器ID
14. 在宿主机和容器间相互copy文件
# docker cp 源文件路径 目标路径
如,将ID=ccd27的容器的 /opt/test.txt 拷贝到宿主机的 /var 目录下:
# docker cp ccd27:/opt/test.txt /var
15. 共享宿主机的卷
# docker run -it -v 宿主机文件夹路径:容器文件夹路径 镜像ID /bin/bash
如,运行一个容器,并将宿主机 /test 目录下的文件共享到自己的 /cons 目录下:
# docker run -it -v /test:/cons 881bd /bin/bash
此时如果在宿主机的 /test 目录下创建一个名为 a.txt 的文件,可以看到该容器的 /cons 目录下也会有一个同样的文件。
16. 共享其他容器的卷
# docker run -it --volumes-from 源容器ID 镜像ID /bin/bash
17. 实时输出docker服务端的事件,包括容器的创建/启动/关闭等
# docker events