Docker 命令
Docker服务相关命令
Docker 采用客户端-服务器架构。Docker 守护进程(dockerd) 负责管理容器、镜像、网络等核心资源。在 Linux 系统中(如 CentOS 9),通常通过 systemd 来管理 Docker 服务。
-
服务状态管理
-
启动 Docker 服务
sudo systemctl start docker -
停止 Docker 服务
sudo systemctl stop docker -
重启 Docker 服务
sudo systemctl restart docker -
查看 Docker 服务状态
sudo systemctl status docker -
设置开机自启
sudo systemctl enable docker -
禁止开机自启
sudo systemctl disable docker -
重新加载配置(不重启,仅重新加载 daemon.json)或发送 HUP 信号
# 重新加载配置 sudo systemctl reload docker
-
Docker镜像相关命令
-
查看镜像(列出本地主机上的镜像)
sudo docker images
各个列说明
- image:镜像的名称和标签,格式为
仓库名:标签。例如hello-world:latest - ID:镜像的唯一标识符(前 12 位),通常为 SHA256 哈希值的一部分。
- DISK USAGE:该镜像实际占用的磁盘空间,包含镜像分层与元数据。
- CONTENT SIZE:镜像的实际内容大小(即压缩后用于分发的体积),通常小于
DISK USAGE。 - EXTRA:略
- image:镜像的名称和标签,格式为
-
搜索镜像
# 搜索镜像 sudo docker search <镜像名称> -
下载镜像
# 下载镜像 sudo docker pull <镜像名称> # 下载对应版本镜像 sudo docker pull <镜像名称>:<版本号> -
删除镜像
sudo docker rmi <ID> sudo docker rmi<镜像名称>:<版本号>
注意:如出现相同ID的镜像,本质上他们的版本是一致的。
Docker容器相关命令
创建容器
# 核心命令
sudo docker run [选项] 镜像名[:标签] [命令] [参数]
-
常用选项
选项 作用 示例 -it分配交互式终端(通常用于进入容器内部)(交互式) docker run -it ubuntu bash-d后台运行容器(守护式) docker run -d nginx--name指定容器名称(必须唯一) docker run --name mynginx nginx-e设置环境变量 docker run -e MYSQL_ROOT_PASSWORD=123456 mysql-p端口映射: 宿主机端口:容器端口docker run -p 8080:80 nginx-v挂载数据卷: 宿主机目录:容器目录docker run -v /data:/app/data nginx--rm容器停止后自动删除 docker run --rm -it ubuntu bash--restart设置重启策略(always/on-failure/no) docker run --restart always nginx -
--name选项的命名规则- 只允许使用字母、数字、下划线、点、短横线。
- 必须以字母或数字开头,不能以符号开头。
- 示例:
my-app_1.0、mysql57、test.container都是合法的。 - 错误示例:
第一个mysql容器(包含中文)、-test(以短横线开头)。
-
示例1
# 创建一个centos7容器,取名为centos7,分配交互式终端(示例) sudo docker run -it --name=centos7 centos:7 /bin/bash- 进入容器后,可以执行 Linux 命令。
- 输入
exit或按Ctrl+D退出,容器会停止(因为主进程 bash 结束)。
-
示例2
sudo docker run -id --name=centos7.0 centos:7- 容器启动后立即返回终端,不会进入容器内部
docker exec进入后,输入exit或按Ctrl+D退出,容器不会停止(只会结束这个额外进程,不会影响容器的主进程)。
查看容器
# 查看所有容器(运行中的)
sudo docker ps
# 查看所有容器(包括已停止的)
sudo docker ps -a
# 查看所有容器的ID(包括已停止的)
sudo docker ps -aq
各个列说明
- CONTAINER ID:容器的唯一标识符(前12位),由Docker自动生成。可通过此ID管理容器(如启动、停止、删除)。
- IMAGE:创建该容器所使用的镜像名称及标签。
- COMMAND:容器启动时运行的命令。这里是
/bin/bash,表示启动了一个bash shell。由于没有使用-d后台运行,容器运行bash后等待用户交互,当退出bash时容器停止。 - CREATED:容器创建时间(相对时间)。
- STATUS:容器当前状态(Up 运行中,Exited 已退出)。
- PORTS:容器的端口映射信息。
- NAMES:容器的名称。
进入容器
# docker exec方式
# docker exec [选项] 容器名 命令
sudo docker exec -it centos7.0 bash
# docker attach方式
# docker attach 容器名
sudo docker attach centos7.0
区别
docker exec方式:在容器内启动新进程(如新 bash),与容器主进程隔离,退出新进程(如 exit)不会影响容器,容器继续运行。docker attach方式:连接到容器主进程的标准输入、输出和错误,退出(如Ctrl+C或exit)可能终止主进程,导致容器停止。
启动容器
sudo docker start 容器名
停止容器
sudo docker stop 容器名
删除容器
# 删除指定容器
sudo docker rm 容器名
# 删除所有容器
sudo docker rm `sudo docker ps -aq`
- 注意:只能删除状态为已关闭的容器。
查看容器信息
sudo docker inspect 容器名

浙公网安备 33010602011771号