本文详细介绍了如何利用Docker和Docker-Compose实现项目的高效部署。首先,初始化环境,包括卸载旧版本的Docker、更新系统和安装必要的依赖项。然后,设置国内的Docker镜像源(如腾讯云、阿里云或清华大学),以加快镜像下载速度。接下来,安装指定版本的Docker和Docker-Compose,并配置镜像加速器来优化性能。之后,将项目代码上传至服务器,修改docker-compose.yml文件以符合项目需求。最后,使用Docker Compose初始化项目,启动并管理容器,实现项目运行。
首先,卸载可能已存在的旧版本 Docker。如果您不确定是否安装过,可以直接执行以下命令:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
更新系统信息:
sudo yum update -y
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
为加快下载速度,建议使用国内的 Docker 镜像源。
sudo yum-config-manager \
--add-repo \
https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
速度较慢,且可能被墙
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果需要安装特定版本的 Docker,可以先查询可用的版本列表:
yum list docker-ce --showduplicates | sort -r
根据查询结果,选择所需的版本(例如 26.0.0),然后执行:
sudo yum install -y docker-ce-<VERSION> docker-ce-cli-<VERSION> containerd.io
将 <VERSION> 替换为实际的版本号。
sudo systemctl start docker
sudo systemctl enable docker
docker info
sudo yum install -y epel-release
sudo yum install -y docker-compose
docker-compose --version
为了提高拉取镜像的速度,可以配置镜像加速器。
编辑配置文件
sudo vim /etc/docker/daemon.json
添加以下内容
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info
在输出信息中,应该能看到配置的镜像加速器。
根据项目需求,修改 docker-compose.yml 文件。将项目部署到根目录下的 docker 目录中。
sudo chmod -R 777 /docker
cd /docker
docker-compose up -d
等待镜像下载、构建和容器启动完成。
您可以使用以下命令查看容器状态:
# 查看镜像列表
docker images
# 查看所有容器
docker ps -a
# 查看指定容器的日志
docker logs -f <容器名称>
访问我们部署的项目地址。
部署成功。
重新构建并启动容器(当代码有改动时)
docker-compose up --force-recreate --build -d <服务名称>
添加描述
将 <服务名称> 替换为 docker-compose.yml 中定义的服务名称。
重启容器(仅刷新)
docker restart <容器名称>
Damon, Chinese, Liu Guangzhi, Software development engineer, CSDN quality creator, Ali Cloud expert blogger, Microsoft Technology Associate, Good at C#, Java, PHP, Python, etc, Love sports, Workaholic, Communist.