1、DockerCompost安装
https://github.com/docker/compose/releases
这次安装选择v2.1.0。由于这个是二进制文件,所以放在usr/bin/即可
shell>wget https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-linux-x86_64
shell>mv docker-compose-linux-x86_64 /usr/bin/docker-compose
shell>chmod +x /usr/bin/docker-compose
2、Compose的三大步
- 定义Dockerfile,以便可以在任意环境运行
- 定义应用程序启动配置文件docker-compose.yml
- docker-compose启动并管理整个应用程序生命周期
https://docs.docker.com/compose/compose-file/
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
networks:
- test
db:
image: mysql:5.7
command: --character-set-server=utf8
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "mysqldata:/var/lib/mysql"
networks:
- test
networks:
test: {}
volumes:
mysqldata: {}
- docker network create test
- docker run -d -p 80:80 –net test nginx
- docker run -d -v mysqldata:/var/lib/mysql -e MY_ROOT_PASSWORD=12345 mysql:5.7 –character-set-server=utf8
以上是dockercompose的命令拆分
shell>docker-compost -f docker-compost.yml up -d
3、需要先用dockerfile构建镜像怎么办呢?
-----vim Dockerfile
FROM centos:7
RUM yum install lrzsz -y
CMD ["sleep 3600"]
--------
version: '3'
services:
Cust-system:
build:
dockerfile: Dockerfile
context: .
shell>docker-compose build
shell>docker-compose up -d
shell>docker-compost ps
字段 | 描述 | 示例 |
build dockerfile context | 构建选项 指定Dockerfile文件名 构建镜像上下文路径 | build: context: ./dir dockerfile: Dockerfile-alternate |
image | 指定镜像 | image: webapp:tag |
command | 容器中执行命令,覆盖默认命令 | command: bundle exec thin -p 300o command: [“bundle”, “exec”,”thin”,”-p”,”3000″] |
container_name | 指定容器名称,由于容器名称是唯一的,如果指 定自定义名称,则无法scale | container_name: my-web-container |
environment | 添加环境变量 | environment – RACK_ENV=development -SHOw -true |
networks | 力入网络,引用顶级networks下条目 | networks: – new |
ports | 暴露端口,与-p相同,但端口不能低于60 | ports: – “80:80 ” – “6060:6060/udp” |
extra_hosts | 添加主机名映射,与—add-host相同 | extra_hosts: – “somehost:162.242.195.82” – “otherhost:50.31.209.229” |
volumes | 挂载宿主机路径或数据卷。如果是命名卷在顶级 volumes定义卷名称 | volumes: – /opt/data:/var/lib/mysql – datavolume:/var/lib/mysql |
restart | 重启策略,默认no, always]on-failure[unless- stopped | restart: always |
hostname | 容器主机名 | hostname: foo |
Compose 常用选项与命令
命令 | 描述 |
build | 重新构建服务 |
ps | 列出容器 |
up | 创建和启动容器 |
exec | 在容器里执行命令 |
scale | 指定一个服务容器启动数量 |
down | 删除容器、网络、数据卷和镜像 |
stop/start/restart | 停止/启动/重启服务 |
- docker-compose build
- docker-compose scale Cust-system=2
- docker-compose up -d
- docker-compose dowm
- docker-compose stop/start/restart Cust-system
常用选项:
-f,–file 指定yaml文件,默认docker-compose.yml
-p,–project-name 指定项目名称,默认是当前目录
shell>docker-compose -f docker-compose.yml -p fox up- d --build
shell>docker-compose -p fox ps