目录
初始DockerCompose
安装DockerCompose
Compose部署微服务demo
使用DockerFile创建镜像,DockerCompose部署项目
初始DockerCompose
作用:快速部署多个容器,而无序一个个docker run
介绍:
DockerCompose是一个文本文件,里面通过指令定义了每个容器如何运行的
下面是两种方式:
不用端口是因为集群,自己访问就行了,所以端口不需要暴露;
version: "3.8"
services:
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- "/tmp/mysql/data:/var/lib/mysql"
- "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
web:
build: .
ports:
- "8090:8090"
下面这个web:build : . xxxx类似于:1.用来用户主动自定义build镜像给到岛屿(本地),后面的.代表当前文件目录下build镜像
2.然后后面的ports相当于docker run了生成容器
安装DockerCompose
1.通过命令下载,或者通过资料上传到/usr/lcoal/bin目录也行
# 安装 curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.修改权限
# 修改权限 chmod +x /usr/local/bin/docker-compose
3.Base自动补全命令
# 补全命令 curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
4.若出现错误
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
Compose部署微服务demo
因为我们的微服务可能并不在本机上,所以我们需要将nacos、mysql等服务地址进行修改改为服务名,然后使用打包打成app.jar,然后拷贝到cloud-demo中的每一个对应的子目录中;
这里我们再复习一下DockerFIle:
一种构建镜像最常用的方式,包括:基础镜像信息+层层叠加,维护更新(容器启动指令+镜像操作指令...)
Docker从上到下顺序执行DockerFIle指令,为了指定基本映象,第一条指令时FROM
每条指令都会创建一个新的镜像层,并对镜像进行提交
实现步骤:
1.cloud项目需要打成jar包后放到各自服务的文件夹下,同时还需要+DockerFile文件,分别代表:
java8,拷贝的app.jar文件,启动脚本
FROM java:8-alpine COPY ./app.jar /tmp/app.jar ENTRYPOINT java -jar /tmp/app.jar
2.每个服务的DockerFile准备好后(也就是镜像构建好),我们还需要DockerCompose:——>目的是将多个镜像全部启动
version: "3.2"
services:
nacos:
image: nacos/nacos-server
environment:
MODE: standalone
ports:
- "8848:8848"
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- "$PWD/mysql/data:/var/lib/mysql"
- "$PWD/mysql/conf:/etc/mysql/conf.d/"
userservice:
build: ./user-service
orderservice:
build: ./order-service
gateway:
build: ./gateway
ports:
- "10010:10010"
最后再执行docker-compose up -d后台部署即可
使用DockerFile创建镜像,DockerCompose部署项目
(13条消息) 使用Dockerfile创建镜像,Docker compose部署服务_吴用丶的博客-CSDN博客_dockerfile 创建镜像



