目录
docker操作命令
镜像操作命令
拉取镜像
导出镜像
删除镜像
加载镜像
推送镜像
部署
pom文件加上
在每个模块根目录加上DockerFile文件
项目根目录加上docker-compose.yml文件
打包,clean,package
服务器上新建文件夹
测试docker-compose是否安装
构建镜像
检查配置是否有问题,在新建的目录下
启动
docker操作命令
镜像操作命令
# 查看 docker 命令及帮助
docker --help
# 查看指定命令的帮助
docker [command] --help
# 查看当前所拥有的镜像
docker images
拉取镜像
# 拉取镜像,未指定版本则拉取最新版,latest
docker pull [ image : {version} ]
# 示例:拉取 nginx1.22版
docker pull nginx:1.22
导出镜像
# 导出一个镜像到磁盘的指定文件,同一个镜像有多个版本时,需要指定版本号
docker save -o [file] [image]:[tag]
# 示例:将 nginx 镜像 导出到 /image/mynginx.tar 文件中
docker save -o /image/mynginx.tar nginx
删除镜像
# 删除一个镜像,(删除镜像时必须指定版本号)
docker rmi [image]:[tag]
# 示例:删除 nginx 1.22
docker rmi nginx:1.22
加载镜像
# 将程序的镜像文件加载到 docker 中, ( -q 表示是否输出加载的过程)
docker load -i [ file ] { -q }
# 示例:将 nginx镜像 文件加载到 docker中
docker load -i /image/mynginx.tar
推送镜像
# 将镜像文件推送到远程
docker push -a [name]:[tag]
部署
pom文件加上
<build><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
在每个模块根目录加上DockerFile文件
# 基础镜像
FROM openjdk:8
# 创建容器默认进入的目录
WORKDIR /app
# 复制jar包到容器中
COPY app.jar /app/app.jar
# 暴露端口 应该保持和源代码端口一致
EXPOSE 6000
# 启动命令
ENTRYPOINT ["java","-jar","-Xms100m","-Xmx100m"]
CMD ["app.jar"]
项目根目录加上docker-compose.yml文件
version: "3.8"networks:# 自定义docker网络名test:services:# 定义服务名字,只要不冲突即可mail-gateway:# 镜像名字或者idimage: mail-gateway# 自定义容器名字container_name: mail-gateway# 映射端口ports:- "88:88"# 网络networks:- testmail-auth:image: mail-authcontainer_name: mail-authports:- "6000:6000"networks:- testmail-email:image: mail-emailcontainer_name: mail-emailports:- "20000:20000"networks:- testmail-user:image: mail-usercontainer_name: mail-userports:- "10000:10000"networks:- testmail-common:image: mail-commoncontainer_name: mail-common
# ports:
# - "10000:10000"networks:- test
打包,clean,package
服务器上新建文件夹
测试docker-compose是否安装
docker-compose --version
构建镜像
docker build -t mail-auth /www/wwwroot/yangsaiya/project/distributed-mail/mail-auth/
检查配置是否有问题,在新建的目录下
docker-compose config -q
启动
docker-compose up