3.1 安装 Docker
3.1.1 安装
- 卸载旧版本
bash
yum remove docker docker-common docker-selinux docker-engine
yum remove docker-ce
rm -rf /var/lib/docker
- 更新 yum
bash
sudo yum update
- 安装 Docker 依赖
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 修改 yum 源
bash
sudo yum-config-manager \
--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装最新 Docker Engine
bash
sudo yum install docker-ce docker-ce-cli containerd.io
- 查看安装版本
bash
docker -v
3.1.2 设置镜像加速
json
# 编辑 daemon.json
vi /etc/docker/daemon.json
# 配置阿里云镜像地址
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
# 刷新配置、重启 Docker
systemctl daemon-reload
systemctl restart docker
3.1.3 Docker 启动与停止
| 操作 | 命令 |
|---|---|
| 启动 Docker | systemctl start docker |
| 停止 Docker | systemctl stop docker |
| 重启 Docker | systemctl restart docker |
| 查看 Docker 状态 | systemctl status docker |
| 开机启动 Docker | systemctl enable docker |
| 查看 Docker 概要信息 | docker info |
| 查看帮助文档 | docker --help |
| 重载 daemon.json | systemctl daemon-reload |
3.2 Docker 常用命令
3.2.1 镜像相关
- 查看镜像
bash
docker images

- 搜索镜像
bash
docker search 镜像名称

- 拉取镜像
bash
docker pull 镜像名称

- 删除镜像
bash
# 根据 ID 删除
docker rmi 镜像ID

bash
# 删除所有镜像
docker rmi `docker images -q`

3.2.2 容器相关
- 创建与启停容器
bash
# 交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
# 守护式创建容器
docker run -di --name=容器名称 镜像名称:标签
| 参数 | 说明 |
|---|---|
| -i | 运行容器 |
| -t | 容器启动后会进入其命令行 |
| -d | 创建一个守护式容器在后台运行,即不进入容器 |
| --name | 为创建的容器命名 |
| -v | 表示目录映射关系,宿主机目录:容器目录 |
| -p | 端口映射,宿主机端口:容器端口 |
| -e | 添加环境变量,如:MYSQL_ROOT_PASSWORD |
bash
# 退出容器
exit
# 登录容器
docker exec -it 容器名称/容器ID /bin/bash
# 启动容器
docker start 容器名称/容器ID
# 停止容器
docker stop 容器名称/容器ID
- 查看容器
bash
# 查看正在运行中的容器
docker ps

bash
# 查看所有容器
docker ps --a
# 查看最后一次运行的容器
docker ps --l
# 查看可以停止的容器
docker ps -f status=exited

- 文件拷贝
bash
# 宿主机拷贝到容器
docker cp 宿主机中需要拷贝的文件或目录 容器名称:容器目录
# 容器拷贝到宿主机
docker cp 容器名称:容器中需要拷贝的文件或目录 宿主机目标文件或目录名
- 查看容器信息
bash
# 查看容器详细信息
docker inspect 容器名称/容器ID

bash
# 查看容器 IP,就是把全部信息进行提取了
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
- 查看容器运行日志
bash
docker logs [OPTIONS] 容器名称/容器ID
| 属性 | 说明 |
|---|---|
| -t | 加入时间戳 |
| -f | 实时打印最新日志 |
| -tail number | 打印最后 number 条 |
3.3 应用部署示例
3.3.1 MySQL 部署
- 拉取镜像
bash
docker pull centos/mysql-57-centos7
- 创建容器
bash
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- 登录 MySQL
直接使用 宿主机IP + 端口 即可远程登录 MySQL,密码为环境变量配置的 123456
3.3.2 Nginx 部署
- 拉取镜像
bash
docker pull nginx
- 创建容器
bash
# 不挂载目录
docker run -di --name=nginx -p 8080:80 nginx
# 挂载目录
docker run -di --name=nginx -p 8080:80 \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf.d:/etc/nginx/conf.d nginx