1.安装Docker Composev2
官方文档:Install the Compose plugin | Docker Docs
1.0.安装之前,如果之前安装过旧版本的Docker,得先卸载,不然可能会报错:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.1.安装yum-utils工具,设置存储库:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.2.安装Docker Egine
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
遇到问题
Error downloading packages:
docker-buildx-plugin-0.14.1-1.el7.x86_64: [Errno 256] No more mirrors to try.
解决方法(本人认为最简单粗暴的方法)
rpm包下载链接:
Index of linux/centos/7/x86_64/stable/Packages/
下载本地再上传虚拟机
执行安装指令,将以下路径更改为下载 Docker 包的路径:
sudo yum install /path/to/package.rpm
//示例
sudo yum install /rpm/docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm
然后重新执行1.2的指令(因为我的ip是国内的,如果还有啥别的问题,如找不到GPG key,多执行几遍就成功了)
如果找不到GPG key,在stack overflow上找到的方法是更新下nss
sudo yum install nss
1.3.测试是否安装成功
启动Docker:
sudo systemctl start docker
拉取hell-oworld
sudo docker run hello-world
如上图显示则说明Docker Egine安装成功了
2.服务器部署项目
将项目从本地部署到服务器有两种方法:
1)将项目上传到服务器再打包(可能会出现打包错误)
2)打包好再上传(稍微有点慢,但不容易出错)
2.1.打包项目
安装Maven:
sudo yum install maven
安装成功后,到项目文件目录下执行Maven打包命令,跳过测试案例打包:
sudo mvn package -DskipTests
2.2.运行项目
打包成功后,开始下载并运行项目需要的环境:
//以前台方式运行
sudo docker compose -f docker-compose.env.yml up
//后台方式运行
sudo docker compose -f docker-compose.env.yml up -d
下载并运行项目需要的服务:
//以前台方式运行
sudo docker compose -f docker-compose.service.yml up
//后台方式运行
sudo docker compose -f docker-compose.service.yml up -d
如果某个项目启动失败的话,再通过如下指令单独启动
sudo docker compose -f docker-compose.service.yml up + servicename
//示例
sudo docker compose -f docker-compose.service.yml up yyoj-backend-gateway
注意!!!!记得到防火墙配置去放行服务需要的端口!!!示例如图
2.3.查看项目是否正常运行
查看所有服务的运行状态:
sudo docker stats
再查看以下swagger的测试文档:http://116.198.xxx.xxx:8101/doc.html#/
确认所有环境和服务都没有问题后,以后台方式运行,至此,微服务成功上线!
3.扩展知识(Docker基操)
若想删除某个镜像,得先停止容器的运行,先删除容器,再删除镜像
3.1.docker的基操
查看容器
//查看当前正在运行的容器
docker ps
//查看所有容器
docker ps -a
查看本地镜像列表
docker images
启动/关闭docker容器/关闭所有容器
docker start 容器名
docker stop 容器名
docker stop $(docker ps -aq)
3.2.删除镜像
停止容器运行
docker stop 容器名
删除容器
docker rm 容器名
//删除所有容器
docker rm $(docker ps -a -q)
删除镜像
docker rmi 容器ID
//删除所有镜像
docker rmi $(docker images -q)