Docker常用命令

2023-10-03 22:17:00
pjd
原创 147
摘要:linux docker

1、查看镜像

docker images   //等同于docker image ls
-REPOSITORY:仓库及镜像名称
-TAG:标签及版本号
-IMAGE ID:镜像ID,镜像的唯一标识
-CREATED:该镜像的构建时间
-SIZE: 该镜像文件的大小  
# docker images
REPOSITORY                     TAG         IMAGE ID       CREATED         SIZE
nginx                          latest      4e07b6c361da   20 hours ago    314MB
redis                          latest      578eb6622b1e   20 hours ago    113MB 
<none>                         <none>      38564788e3w    7 months ago    230MB

在镜像列表中,可能会出现很多镜像,没有名字,REPOSTITORY TAG 都是<none>。

服务器运行一段情况,就会出现none为名称的虚空镜像,它们来源于:原来的像像名称已经更新了,虽然旧的镜像ID依然存在,但是已经在hub上删除且没有引用,造成镜像名、标签都丢失了,变成了虚空镜像,也有叫虚悬镜像、虚无镜像。

这类镜像可以放心删除,常用清除虚空镜像的命令是:

# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] 


2、删除本地镜像

# docker rmi xxx

下面的两种语法都可以完成镜像删除的操作:
docker rmi [选项] <镜像1> [<镜像2>.....]
docker image rm <镜像1>  [<镜像2>.....]
使用 镜像ID、镜像名作为镜像的唯一标识用来删除镜像。

(1)[选项]-f     表示强制删除,有的时候同一个镜像上传到多个仓库,此时镜像ID就不再是唯一标识,需要使用-f强制删除才能删除镜像(具有同一个镜像ID的所有本地镜像全部删除)。
(2)删除镜像之前必须确认被删除的镜像,没有被任何容器使用,否则无法删除。


3、镜像的导入导出
用 save 子命令将本地仓库的镜像保存为当前目录下的tar文件。
docker save -o <自定义包名>.tar <镜像名称>
如下面的命令将 hello-world镜像导出为一个helloworld.tar存放在当前目录

# docker save -o helloworld.tar hello-world
我们可以在另一台服务器上,将hello-world镜像导入,导入方法如下:
# docker load -i helloworld.tar          // 不输出详细信息
# docker load < helloworld.tar        // 输出详细信息

镜像导出导入功能可以用于镜像备份,在没有镜像仓库的公司中也可以使用这种tar包的方式传递镜像文件。


1. `docker system df`:查看 Docker 系统使用情况。

   该命令用于查看 Docker 守护进程占用的系统资源,包括镜像、容器和数据卷的使用情况。

   示例:
   ```
   docker system df
   ```

2. `docker system prune`:清理 Docker 系统资源。

   该命令用于清理未使用的镜像、容器和数据卷,以释放磁盘空间。

   示例:
   ```
   docker system prune
   ```

3. `docker history`:查看镜像的历史记录。

   该命令用于查看镜像构建过程中每层的历史操作命令。

   示例:
   ```
   docker history <image_name>
   ```

4. `docker save`:将一个或多个镜像保存到文件。

   该命令用于将一个或多个镜像保存成 tar 文件,以便在其他机器上加载和使用。

   示例:
   ```
   docker save -o <output_file>.tar <image1_name> <image2_name> ...
   ```

5. `docker load`:从文件中加载一个或多个镜像。

   该命令用于从之前保存的 tar 文件中加载一个或多个镜像。

   示例:
   ```
   docker load -i <input_file>.tar
   ```

6. `docker pause`:暂停容器中的所有进程。

   该命令用于暂停容器中所有正在运行的进程。

   示例:
   ```
   docker pause <container_id>
   ```

7. `docker unpause`:取消对容器中所有进程的暂停。

   该命令用于取消容器中所有进程的暂停状态,使其继续运行。

   示例:
   ```
   docker unpause <container_id>
   ```

8. `docker top`:查看容器中运行的进程。

   该命令用于查看指定容器中正在运行的进程信息。

   示例:
   ```
   docker top <container_id>
   ```

9. `docker update`:更新容器资源限制。

   该命令用于更新容器的 CPU 和内存等资源限制。

   示例:
   ```
   docker update --cpus <cpu_count> --memory <memory_limit> <container_id>
   ```

10. `docker logs`:查看容器的日志输出。

    该命令用于查看容器的标准输出和标准错误输出。

    示例:
    ```
    docker logs <container_id>
    ```

11. `docker diff`:查看容器文件系统中发生的更改。

    该命令用于查看指定容器中文件系统的变化情况,包括新增、修改和删除的文件。

    示例:
    ```
    docker diff <container_id>
    ```

12. `docker exec`:在正在运行的容器中执行命令。

    该命令用于在正在运行的容器内部执行指定的命令。

    示例:
    ```
    docker exec -it <container_id> <command>
    ```

13. `docker stats`:实时查看容器的资源使用情况。

    该命令用于以实时的方式查看容器的 CPU、内存和网络等资源使用情况。

    示例:
    ```
    docker stats <container_id>
    ```

14. `docker events`:查看 Docker 事件流。

    该命令用于查看 Docker 守护进程产生的事件流。

    示例:
    ```
    docker events
    ```

15. `docker port`:查看容器的端口映射。

    该命令用于查看容器内部端口与主机端口的映射关系。

    示例:
    ```
    docker port <container_id>
    ```

16. `docker wait`:等待一个容器完成。

    该命令用于阻塞当前进程,直到指定容器停止运行。

    示例:
    ```
    docker wait <container_id>
    ```

17. `docker export`:将容器的文件系统打包为 tar 文件并导出。

    该命令用于将容器的文件系统导出为 tar 文件。

    示例:
    ```
    docker export -o <output_file>.tar <container_id>
    ```

18. `docker volume`:管理数据卷。

    该命令用于创建、查看和删除数据卷。

    示例:
    ```
    docker volume create <volume_name>
    docker volume inspect <volume_name>
    docker volume rm <volume_name>
    ```

19. `docker network`:管理网络。

    该命令用于创建、查看和删除网络。

    示例:
    ```
    docker network create <network_name>
    docker network inspect <network_name>
    docker network rm <network_name>
    ```

20. `docker buildx`:使用 Buildx 构建多平台镜像。

    该命令用于使用 Buildx 构建适用于多个平台的镜像。

    示例:
    ```
    docker buildx build --platform <platforms> -t <image_name> .
    ```

21. `docker context`:管理 Docker 上下文。

    该命令用于管理 Docker 客户端与远程 Docker 主机之间的上下文环境。

    示例:
    ```
    docker context ls
    docker context use <context_name>
    ```

22. `docker plugin`:管理 Docker 插件。

    该命令用于安装、启用和禁用 Docker 插件。

    示例:
    ```
    docker plugin install <plugin_name>
    docker plugin enable <plugin_name>
    docker plugin disable <plugin_name>
    ```

23. `docker swarm`:管理 Swarm 集群。

    该命令用于初始化、加入和管理 Docker Swarm 集群。

    示例:
    ```
    docker swarm init
    docker swarm join <swarm_token>
    docker service create ...
    ```

24. `docker-compose`:使用 Docker Compose 管理容器编排。

    该命令用于编排和管理多个容器组成的应用程序。

    示例:
    ```
    docker-compose up
    docker-compose down
    ```

25. `docker run --rm`:运行容器并在退出后删除容器。

    该命令用于运行容器,并在容器退出后自动删除容器。

    示例:
    ```
    docker run --rm <image_name>
    ```

26. `docker run -v`:挂载数据卷到容器内部。

    该命令用于将主机上的文件或目录挂载到容器内部的指定路径。

    示例:
    ```
    docker run -v <host_path>:<container_path> <image_name>
    ```

27. `docker run -p`:将主机端口映射到容器端口。

    该命令用于将主机上的端口映射到容器内部的指定端口。

    示例:
    ```
    docker run -p <host_port>:<container_port> <image_name>
    ```

28. `docker run -d`:以后台模式运行容器。

    该命令用于以后台模式运行容器,使其在后台持续运行。

    示例:
    ```
    docker run -d <image_name>
    ```

29. `docker run -it`:以交互模式运行容器。

    该命令用于以交互模式运行容器,进入容器的命令行界面进行交互操作。

    示例:
    ```
    docker run -it <image_name> /bin/bash
    ```

30. `docker run --name`:为容器指定名称。

    该命令用于为容器指定一个自定义的名称,方便后续管理和操作。

    示例:
    ```
    docker run --name <container_name> <image_name>
    ```

31. `docker ps`:查看正在运行的容器。

    该命令用于查看当前正在运行的容器列表。

    示例:
    ```
    docker ps
    ```

32. `docker stop`:停止正在运行的容器。

    该命令用于停止指定的运行中的容器。

    示例:
    ```
    docker stop <container_id>
    ```

33. `docker rm`:删除一个或多个容器。

    该命令用于删除一个或多个容器。

    示例:
    ```
    docker rm <container_id1> <container_id2> ...
    ```

34. `docker rmi`:删除一个或多个镜像。

    该命令用于删除一个或多个镜像。

    示例:
    ```
    docker rmi <image_name1> <image_name2> ...
    ```

这些命令涵盖了 Docker 的各个方面,包括系统资源管理、镜像管理、容器管理、网络管理、数据卷管理、容器编排等等。通过了解和使用这些命令,可以更加灵活地管理和操作 Docker 容器化应用。

以下是学习资源列表:

1、 Docker 入门教程
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html