前提
-
本地安装docker、docker-compose
-
注册阿里云账号
步骤
- 在本地开发环境构建镜像
- 后端项目
在spring-microservice-exam
目录下运行:
1
|
mvn clean package
|
docker插件配置打包的同时构建镜像
构建成功:
- 前端项目
以spring-microservice-exam-ui
为例,在spring-microservice-exam-ui
目录下运行打包命令:
1
|
npm run build
|
运行成功后会生成dist
目录,里面是项目的静态资源,再运行构建镜像命令
1
|
docker build -t registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0 .
|
本地试运行命令:
1
|
docker run -d -p 80:80 --name spring-microservice-exam-ui registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/spring-microservice-exam-ui:2.0
|
- 创建命名空间和镜像仓库
登录阿里云控制台,在容器镜像服务菜单下,创建spring-microservice-exam
命名空间和各服务的仓库
如:config-service
、auth-service
、spring-microservice-ui
- 在开发环境将镜像推送到仓库:
以config-service
为例
1
|
docker push registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0
|
- 登录腾讯云服务器,拉取镜像
登录阿里云Docker Registry:
1
|
docker login --username=你的阿里云账号 registry.cn-hangzhou.aliyuncs.com
|
拉取镜像:
1
|
docker pull registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0
|
- 运行镜像:
1
|
docker run -d -p 8769:8769 --name config-service registry.cn-hangzhou.aliyuncs.com/spring-microservice-exam/config-service:2.0
|
docker常用命令
1. 查看所有容器:docker ps -a
2. 删除镜像:docker rmi imageId
3. 删除容器:docker rm containerId
4. 直接运行一个停止的容器:docker start containerId
5. 进入容器:docker exec -it 09d2a6ee4095 /bin/bash
6. 退出容器:exit
7. 将容器打包成镜像:docker commit containerId imageName,如:docker commit 1f9dfc05e3ad spring-microservice-exam-mysql
docker-compose
基本命令:
基本命令:
1. 启动镜像:docker-compose up
2. 后台启动:docker-compose up -d // 后台启动并运行容器
3. 指定配置文件:docker-compose -f docker-compose-base.yml up
4. 构建服务:docker-compose -f docker-compose-base.yml build
5. 列出所有容器:docker-compose ps
6. 删除容器:docker-compose rm container,如:docker-compose rm config-service
7. 停止正在运行的容器:docker-compose stop
使用示例
MySQL镜像构建、运行、初始化的docker-compose例子:
docker-compose-env.yml:
# MySQL
spring-microservice-exam-mysql:
image: mysql:5.7
volumes:
- data:/var/lib/mysql
# 自动执行初始化脚本
- ./doc/deploy/mysql:/docker-entrypoint-initdb.d/
environment:
MYSQL_ROOT_PASSWORD: 11 # root账户的密码
restart: always
container_name: spring-microservice-exam-mysql
ports:
- 3306:3306
volumes:
data:
driver: local
运行:docker-comopse -f docker-comopse-env.yml up