dockerCompose批量部署docker项目
1. 项目打包
### 1.1 非compose配置文件url写ip
spring:
redis:
host: 127.0.1.1
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
url: jdbc:mysql://127.0.1.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true
### 1.2 使用compose配置文件url写服务名
spring:
redis:
host: redis
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
url: jdbc:mysql://mysql:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true
2. 编写dockerFile
#base image
FROM adoptopenjdk/openjdk8:latest
#类似于执行 linux指令
RUN mkdir /opt/app
#类似于linux copy指令
COPY springboot-0.2.jar /opt/app/
#对外端口
EXPOSE 8080
#执行命令 java -jar /opt/app/springboot-0.2.jar
CMD ["java", "-jar", "/opt/app/springboot-0.2.jar"]
3. 打包镜像
# .代表DockerFile在当前目录
docker build -t name:0.2 .
3.1 修改镜像名称和tag
docker tag [imgid] [name]:[tag]
#修改后使用[name]:[tag]删除原镜像
4. 编写docker-compose.yml(严格要求缩进)
version: "3"
services:
microService:
image: order:0.2
container_name: ms01
ports:
- "8080:8080"
depends_on:
- redis
- mysql
redis:
image: redis
ports:
- "6379:6379"
volumes:
- /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf
- /home/docker/redis/data:/data
command: redis-server /etc/redis/redis.conf
mysql:
image: mysql:5.7.41
environment:
MYSQL_ROOT_PASSWORD: 'PASSWORD'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'test'
MYSQL_USER: 'root'
MYSQL_PASSWORD: 'PASSWORD'
ports:
- "3306:3306"
volumes:
- /home/mysql/data:/var/lib/mysql
- /home/mysql/conf:/etc/mysql/conf.d
- /home/mysql/log:/var/log/mysql
command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
5. 启动/关闭项目
#尽量在docker-compose.yml所在文件夹执行命令
#启动命令
docker-compose up -d
#关闭命令
docker-compose stop