一、compose定义
以下定义摘自docker官网:https://docs.docker.com/compose/overview/
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
译文:
Compose是一个用来定义、运行多容器Docker应用的工具。通过compose,你使用YAML文件来定义你的应用服务。然后,通过一个简单的命令,就能创建和启动你配置的所有服务。
从定义可以看出,Compose是一个工具,用来定义多个容器服务,然后通过一个命令一键启停所有服务,方便一次性管理多个有关联关系的容器。
如果说docker run、docker exec 是shell命令的话,那么compose就是shell脚本!只不过他可以通过YAML配置文件的形式简写命令。
二、使用compose的基本步骤
Using Compose is basically a three-step process:
-
Define your app’s environment with a
Dockerfile
so it can be reproduced anywhere. -
Define the services that make up your app in
docker-compose.yml
so they can be run together in an isolated environment. -
Run
docker-compose up
and Compose starts and runs your entire app.
译文:
Compose使用基本三步骤:
- 通过一个dockefile定义你的app环境,这样你就在任何地方都可以使用。
- 在docker-compose.yml中定义你的服务,这样你就可以在一个独立的环境中运行所有服务。
- 运行docker-compose up来启动和运行你定义的整个app。
三、语法参考
官网学习链接:
https://docs.docker.com/compose/
compose file version 3 语法介绍:
https://docs.docker.com/compose/compose-file/
compose命令行介绍:
https://docs.docker.com/compose/reference/
四、docker-compse案例
按照上面所说的步骤:
1、编写服务的Dockerfile
Nginx、php的Dockerfile已经在前面实践过了,直接拿来使用即可。
2、定义docker-compose.yml
version: '3'services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 81:80 networks: - lnmp volumes: - ./wwwroot:/usr/local/nginx/html php: hostname: php build: context: ./php dockerfile: Dockerfile networks: - lnmp volumes: - ./wwwroot:/usr/local/nginx/html mysql: hostname: mysql image: mysql:5.6 ports: - 3306:3306 networks: - lnmp volumes: - ./mysql/conf:/etc/mysql/conf.d - ./mysql/data:/var/lib/mysql command: --character-set-server=utf8 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: user MYSQL_PASSWORD: user123networks: lnmp:
3、启动docker-compose
docker-compose -f docker-compose.yml up -d
注意:-d是在后台启动,且要在docker-compose.yml文件目录下启动。
4、查看结果
访问url:http://120.92.*.*:81/wordpress