docker-compose入门
docker,docker-compose,shell
安装
- 方式一
sudo pip install docker-compose - 方式二(linux)
# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改权限
sudo chmod +x /usr/local/bin/docker-compose
常用命令
docker-compose down停止删除资源(容器,网络,数据卷等)docker-compose up [-d]创建并且运行容器docker-compose logs [-tf] [SERVICE]查看日志docker-compose ps [SERVICE]显示service对应的容器列表docker-compose pull [SERVICE]获取服务对应的镜像docker-compose build构建或者重建servicesdocker-compose exec SERVICE COMMAND运行的service中执行一个命令docker-compose rm [-s] [SERVICE]删除停止的容器docker-compose run SERVEICE [COMMAND]容器启动时,执行一个命令,该命令会覆盖service配置中定义的命令
配置文件说明(compose file)
- 基本格式
version: "3.9"
services:
proxy:
build: ./proxy
networks:
- frontend
app:
build: ./app
depends_on:
- db
volumes:
- ./static:/static
env_file: .env
ports:
- "80:80"
environment:
SERVER_NAME: a.com.cn
networks:
- frontend
- backend
db:
image: postgres
networks:
- backend
networks:
frontend:
# Use a custom driver
driver: custom-driver-1
backend:
# Use a custom driver which takes special options
driver: custom-driver-2
- network说明
连接外部容器(非compose 管理的容器),创建一个外部网络docker network create mysql,
然后将外部容器连接至该网络docker network connect mysql db(db是外部容器名),compose file连接到该网络,配置文件如下:
services:
web:
# ...
networks:
- db
networks:
db:
external:
name: mysql