Docker Compose 是什么
Docker Compose
是一个用来定义和运行多个Docker
应用的工具,通过Compose
可以在一个文件中定一个多个容器,然后通过一个命令启动你的应用程序。
Docker Compose 命令
Command | Purpose |
---|---|
build | Build or rebuild services |
help | Get help on a command |
kill | Kill containers |
logs | View output from containers |
port | Print the public port for a port binding |
ps | List containers |
pull | Pulls service images |
restart | Restart services |
rm | Remove stopped containers |
run | Run a one-off command |
scale | Set number of containers for a service |
start | Start services |
stop | Stop services |
up | Create and start containers |
第一个应用
version: '3.6'
services:
db:
container_name: db
image: mysql:8
environment:
MYSQL_DATABASE: employees
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: supersecret
ports:
- 3306:3306
web:
image: arungupta/docker-javaee:dockerconeu17
ports:
- 8080:8080
- 9990:9990
depends_on:
- db
- 文件讲解
1、此Compose
文件定义了两个服务,一个是db
,还有一个是web
.
2、使用image
属性定义服务运行的镜像名。
3、environment
环境变量用来设置服务中写dockerfile
时的环境变量。
4、web
服务需要使用db
服务。
5、ports
是服务暴露的端口和转发到容器中的端口上。
6、depends_on
属性是用于设置有依赖关系服务的,此处web
需要依赖db
先启动,所以需要如此设置。
开始运行
创建和启动Compose
命令:docker-compose up -d
,如果compose
的文件名不是默认的,可以通过指定-f a-compose.yml
一个自定义的文件名。
运行之后如果本地没有这个镜像,那么会先去拉取镜像,然后运行,等运行完后,查看docker-compose ps
.
查看日志
docker-compose logs
可以查看多个服务的日志。
停止服务
docker-compose kill
会停止服务,但是不会删除,感觉和docker-compose stop
的作用差不多,通过执行docker-compose start
命令可以再次启动服务。如果想要停止并删除服务,就需要执行docker-compose down
命令。
自定义网络
使用compose
启动的服务都会启动一个自定义的网络,一般命名是项目名加上网络名,如果未命名网络名,就使用default
来定义。
比如:如下我创建了一个网络名为com-demo
的bridge
网络模型。
version: '3.6'
services:
db:
container_name: db
image: mysql:8
environment:
MYSQL_DATABASE: employees
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: supersecret
ports:
- 3306:3306
networks:
- com-demo
web:
image: arungupta/docker-javaee:dockerconeu17
ports:
- 8080:8080
- 9990:9990
depends_on:
- db
networks:
- com-demo
networks:
com-demo:
driver: bridge