Docker Compose是Docker官方的编排工具,用于定义和运行多个Docker容器的应用程序。 在单个主机上,Docker Compose可以用来代替手动运行docker
命令,从而简化容器的管理和部署。
安装Docker Compose
Docker Compose官方网站提供的方式是使用pip安装:
- 确认安装了pip
$ python --version
Python 3.6.5
$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
- 安装docker-compose
$ sudo pip install docker-compose
- 确认安装成功
$ docker-compose --version
docker-compose version 1.23.1, build b02f1306
使用Docker Compose
使用Docker Compose可分为以下几个步骤:
- 编写
docker-compose.yml
文件
docker-compose.yml
文件主要包含两个部分:服务(service)和网络(network)
- 服务(service)定义:指定容器如何构建和运行。每个服务由一个或多个容器组成。
- 网络(network)定义:指定容器互相通信的方式。
示例:
```yaml
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- '8000:80'
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:
```
-
构建并运行服务
-
构建并启动所有的服务容器
$ docker-compose up
-
后台启动所有的服务容器
$ docker-compose up -d
-
关闭并移除所有的服务容器
$ docker-compose down
-
其他操作
-
查看所有正在运行的容器
$ docker-compose ps
-
查看日志
$ docker-compose logs [service name]
-
查看容器资源使用情况
$ docker-compose stats [service name]
示例说明
这里提供两个简单的示例:一个是包含web页面和mysql数据库的LAMP环境,另一个是使用Docker Compose快速部署Nginx反向代理服务。
示例1:LAMP环境
- 编写
docker-compose.yml
文件
```yaml
version: '3'
services:
db:
# MySQL 容器
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
# WordPress 容器
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:
```
- 启动服务
$ docker-compose up -d
- 访问WordPress页面
打开浏览器,输入地址:http://localhost:8080
,即可看到WordPress安装页面。
示例2:Nginx反向代理
- 编写
docker-compose.yml
文件
yaml
version: '3'
services:
web:
# Nginx 容器
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./static_files:/usr/share/nginx/html
- 编写
nginx.conf
conf
events { }
http {
server {
listen 80;
server_name _;
location / {
proxy_pass http://web2:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
- 启动服务
$ docker-compose up -d
- 访问静态文件
把静态文件放到./static_files
目录下,然后在浏览器中输入地址http://localhost
即可访问。
以上就是Docker Compose的安装和使用详解的教程及示例,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker-compose的安装和使用详解 - Python技术站