5
0

安装并使用Docker和Docker Compose

2025-09-26
2026-09-07

安装新版Docker前,卸载所有已安装的Docker组件。可以避免潜在的冲突和兼容性问题。

1.卸载旧版本的Docker

卸载旧版Docker、相关软件包和软件源。

忽略提示软件包未安装的消息。这说明该软件包未安装。

#删除Docker相关源
sudo rm -f /etc/yum.repos.d/docker*.repo
#卸载Docker和相关的软件包
sudo dnf -y remove \
docker-ce \
containerd.io \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-ce-cli \
docker-compose-plugin

2.卸载Docker不会自动移除镜像、容器、存储卷和网络。这些数据默认存储在/var/lib/docker/目录。需手动删除此目录

3.安装docker

依次执行以下命令,添加Docker CE镜像源。
说明
本节通过火山引擎软件源进行加速下载,仅支持在火山引擎实例中使用。更多操作请参考Docker CE镜像。
# 安装必要的一些系统工具
sudo yum install -y yum-utils 
# 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.ivolces.com/docker/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.ivolces.com/docker+' /etc/yum.repos.d/docker-ce.repo
# 更新并安装Docker-CE
sudo dnf makecache --refresh
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

执行以下命令,运行Docker。
systemctl start docker

执行以下命令,确认Docker安装情况。
docker info
返回如下信息,即为安装成功。

管理Docker守护进程

systemctl start docker    #运行 Docker 守护进程
systemctl stop docker     #停止 Docker 守护进程
systemctl restart docker  #重启 Docker 守护进程

4.启动Docker并设置开机自启。

#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker

配置镜像源

由于运营商网络原因,从Docker Hub拉取镜像会失败。配置镜像加速器可解决该问题

重要docker search命令会直接查询Docker Hub,因此会执行失败。

编辑Docker配置文件/etc/docker/daemon.json。若文件不存在,先创建。

{
    "registry-mirrors": ["<加速器地址>"]
}   

重启Docker服务应用新配置。

sudo systemctl restart docker

使用Docker快速部署web应用

#拉取Nginx镜像
sudo docker pull nginx:latest
#创建Dockerfile设置Nginx作为基础镜像,并在Web服务器的根目录创建一个显示Hello World!的index.html文件。
sudo tee Dockerfile <<-'EOF'
FROM nginx:latest
RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
EOF
#构建镜像,镜像名称为hello-world
sudo docker build . -t hello-world:latest

使用Web应用镜像启动名为hello-world的容器。

sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  1. 执行curl http://localhost命令,验证Web程序是否正确显示Hello World!。

安装Docker Compose

当应用包含多个服务,或服务间存在启动顺序依赖时,可以使用Docker Compose,通过一个YAML文件来定义、运行和统一管理。

sudo yum -y install docker-compose-plugin

😀😀😀😀😀😀😀😀

使用Docker Compose部署应用

1.创建编排文件docker-compose.yaml。

#创建编排文件,添加Mysql与WordPress
sudo tee docker-compose.yaml <<-'EOF'
version: '3.1'

services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - "80:80"
    environment:
      #数据库地址
      WORDPRESS_DB_HOST: wordpress_db
      #数据库用户名
      WORDPRESS_DB_USER: wordpress
      #数据库密码
      WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
      #数据库名称
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    container_name: wordpress_db
    environment:
      #数据库名称
      MYSQL_DATABASE: wordpress
      #数据库用户名
      MYSQL_USER: wordpress
      #数据库密码
      MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}
      #数据库ROOT用户密码
      MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD}
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:
EOF

2.启动WordPress服务。将命令中的<数据库密码>调整为MySQL数据库密码。

使用Docker Compose时,命令不用连字符,比如docker compose version。

#启动服务容器。
sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<数据库密码>" docker compose -f docker-compose.yaml up -d

3.在浏览器中输入http://云服务器ECS实例的公网IP,访问WordPress。需要在安全组放行80端口。

需要在安全组放行80端口。

安装并使用Docker和Docker Compose
/archives/010-an-zhuang-bing-shi-yong-dockerhe-docker-compose
作者
Administrator
发布于
2025-09-26
许可协议
CC BY-NC-SA 4.0

评论