Docker基本操作命令

一、镜像

以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 

17. 删除所有容器

# docker rm `docker ps -a -q`

✿ 获取更多,请戳这儿

Comments
Write a Comment