Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。 使用 Docker Compose 不再需要使用 shell 脚本来启动容器。(通过 docker-compose.yml 配置)
Docker Compose的安装
Github源
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 给docker-compose添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
Daocloud源
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 给docker-compose添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
Docker Compose的卸载
sudo rm /usr/local/bin/docker-compose
查看Docker Compose的版本
docker-compose --version
配置Dockerfile
#指定基础镜像,在其上进行定制
FROM java:8
#维护者信息
MAINTAINER zhouzhaodong <xiuaiba@163.com>
#设置工作目录
WORKDIR /apps/demo
#添加demo-0.0.1.jar 到容器里
ADD demo-0.0.1.jar demo-1.0.0.jar
#bash方式执行,使demo-1.0.0.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /demo-1.0.0.jar"
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080
#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]
配置docker-compose.yml文件
# 版本
version: '3.0'
services:
demo:
# build就是用来指定Dockerfile所在的文件路径
build: .
# 映射端口
ports:
- "8080:8080"
volumes: # 指定一个文件目录,用来存放容器数据。
# 如果这里将宿主机存放jar包的位置映射到容器种存放jar包的位置的话,每次发布新的程序就可以直接替换宿主机的jar包,然后down和up一下就可以了。
- /mnt/demo:/apps/demo
docker-compose的常用命令
build: # 不带缓存的构建镜像
docker-compose build --no-cache;
up: # 构建并启动容器
docker-compose up -d
down: # 删除所有容器,镜像
docker-compose down
restart: #重启容器
docker-compose build; docker-compose down; docker-compose up -d
运行docker-compose命令构建运行镜像
- 首先在宿主机里面新建一个文件夹存放我们之前创建的Dockerfile,docker-compose.yml和我们打好的jar包。
- 先进入到该目录下,运行down命令,删除之前创建的所有镜像。
- 运行build命令,生成镜像。
- 运行up命令,启动容器。
- 访问ip+端口号,就可以看到我们的程序了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。