Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。 使用 Docker Compose 不再需要使用 shell 脚本来启动容器。(通过 docker-compose.yml 配置)
Docker Compose的安装
Github源
1
2
3
|
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源
1
2
3
|
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的卸载
1
|
sudo rm /usr/local/bin/docker-compose |
查看Docker Compose的版本
1
|
docker-compose --version |
配置Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#指定基础镜像,在其上进行定制 FROM java:8 #维护者信息 MAINTAINER zhouzhaodong <xiuaiba@163.com> #设置工作目录 WORKDIR /apps/demo #添加demo-0.0.1-SNAPSHOT.jar 到容器里 ADD demo-0.0.1-SNAPSHOT.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文件
1
2
3
4
5
6
7
8
9
10
11
12
|
# 版本 version: '3.0' services: demo: # build就是用来指定Dockerfile所在的文件路径 build: . # 映射端口 ports: - "8080:8080" volumes: # 指定一个文件目录,用来存放容器数据。 # $PWD 表示当前路径 - $PWD/data:/var/lib/log |
docker-compose的常用命令
1
2
3
4
5
6
7
8
|
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+端口号,就可以看到我们的程序了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000021064248