目錄
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