1.卸载

卸载旧版本Docker和残留数据

1
2
3
4
5
6
7
8
9
10
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

2.安装

  1. 安装依赖包
1
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 配置Docker的yum源
1
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装Docker,CentOS 7对新版Docker兼容性有限,推荐安装24.0.x长期稳定版本,这里安装24.0.9
1
yum install -y docker-ce-24.0.9 docker-ce-cli-24.0.9 containerd.io docker-compose-plugin

如果想安装最新的则去掉版本号如下

1
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动Docker服务
1
systemctl start docker

查看启动状态,出现 active (running) 即为成功

1
systemctl status docker

设置开机自启

1
systemctl enable docker

3.配置镜像加速

创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1.创建目录
mkdir -p /etc/docker

# 2.创建配置文件
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
EOF

# 3.重新加载配置
systemctl daemon-reload

# 4.重启Docker
systemctl restart docker

4.设置非root用户可以免sudo使用Docker(可选)

  1. 创建docker组
1
groupadd docker || true
  1. 将用户加入docker组(替换user)
1
usermod -aG docker user
  1. 刷新组权限
1
newgrp docker
  1. 校验
1
docker ps

5.部署MySQL和命令解读

  1. 部署
1
2
3
4
5
6
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=1234 \
mysql
  1. Docker命令解读
1
2
3
4
5
6
7
8
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 mysql

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=1234 \
mysql

docker run :建并运行一个容器

-d :让容器在后台运行

--name :容器的名字,唯一值不可重复

-p 3306:3306 :端口映射,前面的端口号为宿主机的端口,后面的端口号为容器内端口(取决于进程不需要改动,根据安装的容器类型一般是固定的,比如mysql为3306,tomcat为8080)

-e KEY:VALUE :Environment Variables,环境变量,创建容器时需要用的环境变量,格式为镜像开发者规定的键值对

mysql:创建容器时指定运行的镜像的名字,命名规范为 [repository]:[tag] ,其中repository为镜像名,tag为镜像版本,如mysql:5.7

6.设置容器自启动的方式

重启策略说明:

  • no:默认值,容器退出时不会自动重启。
  • on-failure:仅在容器异常退出(退出状态码非 0)时重启。
  • always:无论退出原因,始终重启容器。(容易占用资源过多不必要的资源,根据情况选择)
  • unless-stopped:除非手动停止,否则始终重启。
  1. 方式1:新建容器时设置自启动
1
docker run -d --name <容器名称> --restart=unless-stopped <镜像名称>

示例:

1
2
3
4
5
6
7
docker run -d \
--name mysql \
--restart=unless-stopped \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=1234 \
mysql
  1. 方式2:已存在的容器设置自启动
1
docker update --restart=unless-stopped <容器ID或名称>

示例:(注意设置的是容器ID或名称,不是镜像名称)

1
docker update --restart=unless-stopped mysql
  1. 取消容器的自启动
1
docker update --restart=no <容器ID或名称>
  1. 批量设置所有容器自启动
1
docker update --restart=unless-stopped $(docker ps -aq)

注意事项

  • 确保 Docker 服务本身已设置为开机自启动
1
systemctl enable docker

7.Docker常用命令

命令 功能 示例
docker run 启动一个新的容器并运行命令 docker run -d ubuntu
docker ps 列出当前正在运行的容器 docker ps
docker ps -a 列出所有容器(包括已停止的容器) docker ps -a
docker build 使用 Dockerfile 构建镜像 docker build -t my-image .
docker images 列出本地存储的所有镜像 docker images
docker pull 从 Docker 仓库拉取镜像 docker pull ubuntu
docker push 将镜像推送到 Docker 仓库 docker push my-image
docker exec 在运行的容器中执行命令 docker exec -it container_name bash
docker stop 停止一个或多个容器 docker stop container_name
docker start 启动已停止的容器 docker start container_name
docker restart 重启一个容器 docker restart container_name
docker rm 删除一个或多个容器 docker rm container_name
docker rmi 删除一个或多个镜像 docker rmi my-image
docker logs 查看容器的日志 docker logs container_name
docker inspect 获取容器或镜像的详细信息 docker inspect container_name
docker exec -it 进入容器的交互式终端 docker exec -it container_name /bin/bash
docker network ls 列出所有 Docker 网络 docker network ls
docker volume ls 列出所有 Docker 卷 docker volume ls
docker-compose up 启动多容器应用(从docker-compose.yml文件) docker-compose up
docker-compose down 停止并删除由docker-compose启动的容器、网络等 docker-compose down
docker info 显示 Docker 系统的详细信息 docker info
docker version 显示 Docker 客户端和守护进程的版本信息 docker version
docker stats 显示容器的实时资源使用情况 docker stats
docker login 登录 Docker 仓库 docker login
docker logout 登出 Docker 仓库 docker logout

8.配置Docker命令别名

写入当前用户的~/.bashrc

1
2
3
4
5
6
vim ~/.bashrc
alias dps='docker ps'
alias dpsa='docker ps -a'
alias dim='docker images'
alias dlogs='docker logs -f'
alias dex='docker exec -it'

刷新配置

1
source ~/.bashrc