Docker常用命令

1499 字
7 分钟
Docker常用命令

安装 Docker#

Terminal window
yum update #更新 yum 版本
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装 docker 依赖包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #设置 yum 源为阿里云的镜像源
yum install docker-ce #安装 docker
docker -v #查看 docker 版本

设置 Docker 镜像源#

编辑 /etc/docker/daemon.json 文件加入下面内容:

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

然后重启 Docker 服务使配置生效。

Docker 服务命令#

Terminal window
systemctl start docker # 启动 Docker
systemctl stop docker # 停止 Docker
systemctl restart docker # 重启 Docker
systemctl status docker # 查看 Docker 状态
systemctl enable docker # 设置开机自启
docker info # 查看 Docker 详细信息
docker --help # 查看帮助信息

镜像相关命令#

Terminal window
docker images # 查看本地镜像
docker search 镜像名称 # 搜索镜像
docker pull 镜像名称 # 拉取镜像
docker rmi 镜像ID # 删除指定镜像
docker rmi `docker images -q` # 删除所有镜像

镜像信息说明:

  • REPOSITORY:镜像名称
  • TAG:镜像标签
  • IMAGE ID:镜像 ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小

这些镜像都是存储在 Docker 宿主机的 /var/lib/docker 目录下

搜索镜像说明:

  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由 Docker Hub 自动构建流程创建的

容器相关命令#

1. 查看容器#

Terminal window
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包括已停止)
docker ps -l # 查看最后一次运行的容器
docker ps -f status=exited # 查看已停止的容器

2. 创建与启动容器#

创建容器常用参数说明#

参数说明
-i表示运行容器
-t容器启动后会进入其命令行,分配一个伪终端
--name为创建的容器命名
-v目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录)
-d守护式容器,在后台运行
-p端口映射(宿主机端口:容器端口)

交互式方式创建容器#

Terminal window
docker run -it --name=容器名称 镜像名称:标签 /bin/bash

/bin/bash 为加载命令,这时我们通过 ps 命令查看,可以看到启动的容器,状态为启动状态

退出当前容器:

Terminal window
exit

守护式方式创建容器(常用)#

Terminal window
docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式:

Terminal window
docker exec -it 容器名称(或者容器ID) /bin/bash

3. 停止与启动容器#

Terminal window
docker stop 容器名称(或者容器ID) # 停止容器
docker start 容器名称(或者容器ID) # 启动容器
docker restart 容器名称(或者容器ID) # 重启容器

4. 文件拷贝#

Terminal window
# 将文件拷贝到容器内
docker cp 需要拷贝的文件或目录 容器名称:容器目录
# 将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录

5. 目录挂载#

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器。

Terminal window
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为 CentOS7 中的安全模块 selinux 把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

Terminal window
docker run -di --privileged=true -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

6. 查看容器 IP 地址#

Terminal window
# 查看容器运行的各种数据
docker inspect 容器名称(容器ID)
# 直接输出 IP 地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

7. 删除容器#

Terminal window
docker rm 容器名称(容器ID) # 删除已停止的容器
docker rm -f 容器名称(容器ID) # 强制删除运行中的容器

应用部署#

这里以 MySQL 为例说明如何通过 Docker 部署应用。

1. 拉取 MySQL 镜像#

Terminal window
docker pull centos/mysql-57-centos7

2. 创建容器#

Terminal window
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7

-p 代表端口映射,格式为 宿主机映射端口:容器运行端口 -e 代表添加环境变量,MYSQL_ROOT_PASSWORD 是 root 用户的登录密码

3. 远程登录 MySQL#

连接宿主机的 IP,指定端口为 33306

迁移与备份#

容器保存为镜像#

我们可以通过以下命令将容器保存为镜像:

Terminal window
docker commit mynginx mynginx_i

镜像备份#

我们可以通过以下命令将镜像保存为 tar 文件:

Terminal window
docker save -o mynginx.tar mynginx_i

镜像恢复与迁移#

首先删除掉 mynginx_i 镜像,然后执行此命令进行恢复:

Terminal window
docker load -i mynginx.tar

-i 表示输入的文件

执行后再次查看镜像,可以看到镜像已经恢复。

Dockerfile#

Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。

命令作用
FROM image_name定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name声明镜像的创建者
ENV key value设置环境变量(可以写多条)
RUN command是 Dockerfile 的核心部分(可以写多条)
ADD source_dir/file dest_dir/file将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file和 ADD 相似,但是如果有压缩文件并不能解压
WORKDIR path_dir设置工作目录

使用脚本创建镜像#

步骤:

  1. 创建目录
Terminal window
mkdir -p /usr/local/dockerjdk8
  1. 下载 jdk-8u171-linux-x64.tar.gz 并上传到服务器中的 /usr/local/dockerjdk8 目录

  2. 创建文件 Dockerfile

# 依赖镜像名称和 ID
FROM centos:7
# 指定镜像创建者信息
MAINTAINER ITCAST
# 切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
# ADD 是相对路径 jar,把 Java 添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
# 配置 Java 环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
  1. 执行命令构建镜像
Terminal window
docker build -t='jdk1.8' .

注意:后边的空格和点,不要省略

  1. 查看镜像是否建立完成
Terminal window
docker images

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Docker常用命令
https://v7w.cn/posts/docker-common-commands/
作者
枫诀宝贝
发布于
2026-03-27
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
枫诀宝贝
以代码为任,解剖数字混沌。
站点统计
文章
8
分类
8
标签
33
总字数
16,610
运行时长
0
最后活动
0 天前

目录