安装并使用Docker和Docker Compose
安装新版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
- 执行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