简介
Docker Compose是一个基于Docker Engine进行安装的Python工具。该工具使得用户可以在一个声明式的配置文件中定义一个多容器的应用,在Docker节点上,以单引擎模式(Single-Engine Mode)进行多容器应用的部署和生命周期的管理。
背景
Docker Compose的前身是Fig。Fig是一个由Orchard公司开发的强有力的工具,在内部实现上,Fig会解析YAML文件,并通过Docker API进行应用的部署和管理。
在2014年,Docker公司收购了Orchard公司,并将Fig更名为Docker Compose。命令行工具也从fig更名为docker-compose,并自此成为绑定在Docker引擎之上的外部工具。虽然它从未完全集成到Docker引擎中,但是仍然受到广泛关注并得到普遍使用。
Docker Compose 常用命令
编写dockerfile文件
vim Dockerfile
在里面写入以下
FROM openjdk:latest
WORKDIR /project
COPY spring.jar /project
CMD java -jar spring.jar --mysql.addr=m1
创建容器
docker build -t spring:v1 .
运行3个容器
docker run -itd spring:v1
docker run -itd spring:v1
docker run -itd spring:v1
查看一下
docker ps
运行
docker run -itd
--name t1
tomcat:8.5.20
创建目录
mkdir -p tomcat/webapps
cd 进入目录
cd tomcat/webapps
把jar包放入
删除容器的代码:
docker rm -f t1
运行以下代码:
docker run -itd
-v /root/soft/mysql/conf/my.cnf:/etc/my.cf
-v /root/soft/mysql/data:/var/lib/mysql
-v /root/soft/mysql/script:/script
--privileged=true
-e MYSQL_ROOT_PASSWORD=123456
--name m1
--net my_net (指定使用自定义网络)
mysql/mysql-server:5.7
docker run -itd
--name t1
-v /root/soft/tomcat/webapps/:/usr/local/tomcat/webapps
--privileged=true
-p 8080:8080
--net my_net
tomcat:8.5.20
进去修改配置文件
<<使用容器名代表ip的写法只允许出现在自定义网络中>>
docker network create --subnet=172.33.0.1/16 my_net
---------------------------将语句改成docker-compose版本---------------------------------------
编辑文件:
vim docker-compose.yml
把下面的内容放进去
version: "3"
services:
mysql:
container_name: m1
volumes:
- /root/soft/mysql/conf/my.cnf:etc/my.cnf
- /root/soft/mysql/data:/var/lib/mysql
- /root/soft/mysql/script:script
privileged: true
environment:
- MYSQL_ROOT_PASSWORD=123456
image: tomcat:v1
command: "./wait-for-it.sh -t 20 m1:3306 -- catalina.sh run"
tomcat:
container_name:t1
volumes:
- /root/soft/tomcat/webapps/:/user/local/tomcat/webapps
privileged:true
ports:
- "8080:8080"
networks:
- my_net
image:tomcat:8.5.20
networks:
my_net:
driver:bridge
ipam:
config:
- subnet:172.33.0.1/16
放进去之后启动
docker-compose up -d
2.docker-compose.yml
docker-compose.yml 属性