Junki
Junki
Published on 2025-03-18 / 35 Visits
0
0

Docker 命令大全:掌握容器化的得力工具

Docker作为一款强大的容器化平台,极大地改变了应用程序的部署和管理方式。通过一系列简洁而功能丰富的命令,开发者和运维人员能够高效地创建、运行、管理和分享容器。本文将全面介绍常用的Docker命令,帮助你深入掌握Docker的使用技巧。

一、基础镜像操作命令

(一)搜索镜像

在Docker Hub等镜像仓库中查找所需镜像,使用docker search命令。例如,要搜索官方的Nginx镜像:

docker search nginx

该命令会返回一系列与Nginx相关的镜像列表,包括镜像名称、描述、星级评价等信息,方便我们筛选合适的镜像。

(二)拉取镜像

确定目标镜像后,使用docker pull命令将其下载到本地。拉取最新版的Nginx镜像:

docker pull nginx

如果需要指定版本,可以在镜像名称后加上:版本号,如docker pull nginx:1.23.3

(三)列出本地镜像

查看已经下载到本地的镜像列表,使用docker images命令:

docker images

输出结果会显示镜像的仓库名称、标签、镜像ID、创建时间以及大小等详细信息。

(四)删除镜像

当某个镜像不再需要时,可通过docker rmi命令删除。例如,删除本地的Nginx镜像(假设镜像ID为1234567890ab):

docker rmi 1234567890ab

也可以通过镜像名称和标签来删除,如docker rmi nginx:latest。若要删除多个镜像,可同时指定多个镜像ID或名称标签组合。

二、容器操作命令

(一)创建并运行容器

使用docker run命令可以基于镜像创建一个新容器并启动它。以下是一些常见的使用示例:

  1. 以默认配置启动一个Nginx容器,并将容器的80端口映射到主机的8080端口:
docker run -p 8080:80 nginx

-p参数用于指定端口映射关系,格式为主机端口:容器端口
2. 启动一个交互式的Ubuntu容器,进入容器的命令行界面:

docker run -it ubuntu bash

-i参数保持标准输入流打开,-t参数为容器分配一个伪终端,这样我们就可以在容器内执行命令。

(二)列出运行中的容器

查看当前正在运行的容器,使用docker ps命令:

docker ps

该命令会显示容器的ID、名称、运行的镜像、启动时间、状态以及端口映射等信息。若要查看所有容器(包括已停止的),可加上-a参数:

docker ps -a

(三)停止和启动容器

停止正在运行的容器,使用docker stop命令,指定容器ID或名称。例如,停止名为my_nginx的容器:

docker stop my_nginx

要重新启动已停止的容器,使用docker start命令:

docker start my_nginx

(四)进入正在运行的容器

当需要在运行中的容器内执行命令时,使用docker exec命令。例如,进入正在运行的Nginx容器并查看其日志:

docker exec -it my_nginx tail -f /var/log/nginx/access.log

-it参数同样用于保持交互模式,方便在容器内操作。

例如,进入容器执行 sh:

docker exec -it my_nginx sh

(五)删除容器

删除不再使用的容器,使用docker rm命令。先停止容器,然后删除。例如,删除名为my_ubuntu的容器:

docker stop my_ubuntu
docker rm my_ubuntu

也可以使用-f参数强制删除正在运行的容器,但不推荐这种做法,可能会导致数据丢失或未完成的任务中断:

docker rm -f my_ubuntu

三、容器网络操作命令

(一)查看网络列表

Docker提供了多种网络模式,查看当前系统中的网络列表,使用docker network ls命令:

docker network ls

输出结果会展示网络的ID、名称、驱动类型等信息。常见的网络驱动有bridgehostoverlay等。

(二)创建自定义网络

创建一个自定义的桥接网络,例如:

docker network create -d bridge my_network

-d参数指定网络驱动类型,这里选择bridge驱动。自定义网络可以更好地管理容器之间的网络连接和通信。

(三)将容器连接到网络

创建容器时可以指定连接到某个网络,或者将已有的容器连接到新网络。例如,将一个已有的Nginx容器连接到前面创建的my_network网络:

docker network connect my_network my_nginx

也可以在创建容器时通过--network参数指定网络,如:

docker run --network=my_network -p 8080:80 nginx

四、数据卷操作命令

(一)创建数据卷

数据卷用于在容器和主机之间共享数据,确保数据的持久化。创建一个数据卷,使用docker volume create命令:

docker volume create my_volume

(二)查看数据卷列表

查看系统中已创建的数据卷,使用docker volume ls命令:

docker volume ls

(三)将数据卷挂载到容器

在创建容器时,通过-v参数将数据卷挂载到容器内的指定目录。例如,将my_volume数据卷挂载到Nginx容器的/usr/share/nginx/html目录:

docker run -p 8080:80 -v my_volume:/usr/share/nginx/html nginx

这样,对容器内/usr/share/nginx/html目录的操作会同步到my_volume数据卷,即使容器被删除,数据依然保存在数据卷中。

(四)删除数据卷

当数据卷不再使用时,可以使用docker volume rm命令删除:

docker volume rm my_volume

五、其他常用命令

(一)查看Docker系统信息

使用docker info命令可以获取Docker系统的详细信息,包括容器和镜像的数量、存储驱动、内存和CPU使用情况等:

docker info

(二)构建镜像

如果有Dockerfile定义了镜像的构建规则,可以使用docker build命令构建镜像。假设在当前目录下有一个Dockerfile,构建一个名为my_app:latest的镜像:

docker build -t my_app:latest.

-t参数用于指定镜像的标签,最后的.表示构建上下文为当前目录。

(三)推送镜像到仓库

将本地构建好的镜像推送到远程镜像仓库(如Docker Hub),首先需要登录到仓库:

docker login

然后使用docker push命令推送镜像,例如:

docker push my_app:latest

Comment