docker-compose安装和使用
2017-12-06 09:27
531 查看
1、安装(直接安装网络太慢,使用python安装)
yum -y install epel-release 安装python pip依赖
vi /etc/yum.repos.d/epel.repo 修改依赖repo,使用base的地址
yum -y install python-pip 安装python pip
pip install docker-compose 安装docker-compose
pip install --upgrade backports.ssl_match_hostname pip更新
docker-compose -version 完成
2、使用
使用Compose只需要简单的三个步骤:
第一步,使用Dockerfile来定义你的应用环境:
第二步,用一个docker-compose.yml来定义你的应用服务,他们可以把不同的服务生成不同的容器中组成你的应用。
第三步,执行
3、yml文件参考(要注意有2个版本,推荐使用version2)
在上面的yml文件中,我们可以看到compose文件的基本结构。首先是定义一个服务名,下面是yml服务中的一些选项条目:
其他的
4、命令说明
大部分命令都可以运行在一个或多个服务上。如果没有特别的说明,命令则应用在项目所有的服务上。
执行
基本的使用格式是
构建或重新构建服务。
服务一旦构建后,将会带上一个标记名,例如 web_db。
可以随时在项目目录下运行
获得一个命令的帮助。
通过发送
查看服务的输出。
打印绑定的公共端口。
列出所有容器。
拉取服务镜像。
删除停止的服务容器。
在一个服务上执行一个命令。
例如:
将会启动一个 ubuntu 服务,执行
默认情况下,所有关联的服务将会自动被启动,除非这些服务已经在运行中。
该命令类似启动容器后运行指定的命令,相关卷、链接等等都将会按照期望创建。
两个不同点:
给定命令将会覆盖原有的自动运行命令;
不会自动创建端口,以避免冲突。
如果不希望自动启动关联的容器,可以使用
将不会启动 web 容器所关联的其它容器。
设置同一个服务运行的容器个数。
通过
启动一个已经存在的服务容器。
停止一个已经运行的容器,但不删除它。通过
构建,(重新)创建,启动,链接一个服务相关的容器。
链接的服务都将会启动,除非他们已经运行。
默认情况,
如果使用
默认情况,如果该服务的容器已经存在,
环境变量可以用来配置 Compose 的行为。
以
设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。
设置要使用的
设置 Docker daemon 的地址。默认使用
如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。
配置 TLS 通信所需要的验证(
来源: http://wiki.jikexueyuan.com/project/docker-technology-and-combat/commands.html
yum -y install epel-release 安装python pip依赖
vi /etc/yum.repos.d/epel.repo 修改依赖repo,使用base的地址
yum -y install python-pip 安装python pip
pip install docker-compose 安装docker-compose
pip install --upgrade backports.ssl_match_hostname pip更新
docker-compose -version 完成
2、使用
使用Compose只需要简单的三个步骤:
第一步,使用Dockerfile来定义你的应用环境:
1 2 3 4 | FROM python:2.7 ADD ./code WORKDIR /code RUN pip install -r requirements.txt |
1 2 3 4 5 6 7 8 9 10 11 | web: build:. command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis redis: image: redis |
docker-compose up来启动你的应用,它会根据docker-compose.yml的设置来pull/run这俩个容器,然后再启动。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Creating myapp_redis_1... Creating myapp_web_1... Building web... Step 0 : FROM python:2.7 2.7: Pulling from python ... Status: Downloaded newer image for python:2.7 ---> d833e0b23482 Step 1 : ADD . /code ---> 1c04b1b15808 Removing intermediate container 9dab91b4410d Step 2 : WORKDIR /code ---> Running in f495a62feac9 ---> ffea89a7b090 Attaching to myapp_redis_1, myapp_web_1 ...... redis_1 | [1] 17 May 10:42:38.147 * The server is now ready to accept connections on port 6379 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) web_1 | * Restarting with stat 来源: http://debugo.com/docker-compose/ |
在上面的yml文件中,我们可以看到compose文件的基本结构。首先是定义一个服务名,下面是yml服务中的一些选项条目:
image:镜像的ID
build:直接从pwd的Dockerfile来build,而非通过image选项来pull
links:连接到那些容器。每个占一行,格式为SERVICE[:ALIAS],例如 – db[:database]
external_links:连接到该compose.yaml文件之外的容器中,比如是提供共享或者通用服务的容器服务。格式同links
command:替换默认的command命令
ports: 导出端口。格式可以是:
1 | ports:-"3000"-"8000:8000"-"127.0.0.1:8001:8001" |
expose:导出端口,但不映射到宿主机的端口上。它仅对links的容器开放。格式直接指定端口号即可。
volumes:加载路径作为卷,可以指定只读模式:
1 2 3 | volumes:-/var/lib/mysql - cache/:/tmp/cache -~/configs:/etc/configs/:ro |
volumes_from:加载其他容器或者服务的所有卷
1 2 | environment:- RACK_ENV=development - SESSION_SECRET |
env_file:从一个文件中导入环境变量,文件的格式为RACK_ENV=development
extends:扩展另一个服务,可以覆盖其中的一些选项。一个sample如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | common.yml webapp: build:./webapp environment:- DEBUG=false- SEND_EMAILS=false development.yml web:extends: file: common.yml service: webapp ports:-"8000:8000" links:- db environment:- DEBUG=true db: image: postgres |
net:容器的网络模式,可以为”bridge”, “none”, “container:[name or id]”, “host”中的一个。
dns:可以设置一个或多个自定义的DNS地址。
dns_search:可以设置一个或多个DNS的扫描域。
其他的
working_dir, entrypoint, user, hostname, domainname, mem_limit, privileged, restart, stdin_open, tty, cpu_shares,和
docker run命令是一样的,这些命令都是单行的命令。例如:
1 2 3 4 5 6 7 8 9 10 11 | cpu_shares:73 working_dir:/code entrypoint: /code/entrypoint.sh user: postgresql hostname: foo domainname: foo.com mem_limit:1000000000 privileged:true restart: always stdin_open:true tty:true |
大部分命令都可以运行在一个或多个服务上。如果没有特别的说明,命令则应用在项目所有的服务上。
执行
docker-compose [COMMAND] --help查看具体某个命令的使用说明。
基本的使用格式是
docker-compose [options] [COMMAND] [ARGS...]
选项
--verbose输出更多调试信息。
--version打印版本并退出。
-f, --file FILE使用特定的 compose 模板文件,默认为
docker-compose.yml。
-p, --project-name NAME指定项目名称,默认使用目录名称。
命令
build
构建或重新构建服务。服务一旦构建后,将会带上一个标记名,例如 web_db。
可以随时在项目目录下运行
docker-compose build来重新构建服务。
help
获得一个命令的帮助。
kill
通过发送 SIGKILL信号来强制停止服务容器。支持通过参数来指定发送的信号,例如
$ docker-compose kill -s SIGINT
logs
查看服务的输出。
port
打印绑定的公共端口。
ps
列出所有容器。
pull
拉取服务镜像。
rm
删除停止的服务容器。
run
在一个服务上执行一个命令。例如:
$ docker-compose run ubuntu ping docker.com
将会启动一个 ubuntu 服务,执行
ping docker.com命令。
默认情况下,所有关联的服务将会自动被启动,除非这些服务已经在运行中。
该命令类似启动容器后运行指定的命令,相关卷、链接等等都将会按照期望创建。
两个不同点:
给定命令将会覆盖原有的自动运行命令;
不会自动创建端口,以避免冲突。
如果不希望自动启动关联的容器,可以使用
--no-deps选项,例如
$ docker-compose run --no-deps web python manage.py shell
将不会启动 web 容器所关联的其它容器。
scale
设置同一个服务运行的容器个数。通过
service=num的参数来设置数量。例如:
$ docker-compose scale web=2 worker=3
start
启动一个已经存在的服务容器。
stop
停止一个已经运行的容器,但不删除它。通过 docker-compose start可以再次启动这些容器。
up
构建,(重新)创建,启动,链接一个服务相关的容器。链接的服务都将会启动,除非他们已经运行。
默认情况,
docker-compose up将会整合所有容器的输出,并且退出时,所有容器将会停止。
如果使用
docker-compose up -d,将会在后台启动并运行所有的容器。
默认情况,如果该服务的容器已经存在,
docker-compose up将会停止并尝试重新创建他们(保持使用
volumes-from挂载的卷),以保证
docker-compose.yml的修改生效。如果你不想容器被停止并重新创建,可以使用
docker-compose up --no-recreate。如果需要的话,这样将会启动已经停止的容器。
环境变量
环境变量可以用来配置 Compose 的行为。以
DOCKER_开头的变量和用来配置 Docker 命令行客户端的使用一样。如果使用 boot2docker ,
$(boot2docker shellinit)将会设置它们为正确的值。
COMPOSE_PROJECT_NAME
设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。
COMPOSE_FILE
设置要使用的 docker-compose.yml的路径。默认路径是当前工作目录。
DOCKER_HOST
设置 Docker daemon 的地址。默认使用 unix:///var/run/docker.sock,与 Docker 客户端采用的默认值一致。
DOCKER_TLS_VERIFY
如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。
DOCKER_CERT_PATH
配置 TLS 通信所需要的验证(ca.pem、
cert.pem和
key.pem)文件的路径,默认是
~/.docker。
来源: http://wiki.jikexueyuan.com/project/docker-technology-and-combat/commands.html
相关文章推荐
- Docker & Docker-Compose安装、使用
- 使用docker-compose快速安装redmine
- 【Docker】Docker-Compose安装与使用
- [置顶] docker-compose教程(安装,使用, 快速入门)
- docker 及 docker-compose 的快速安装和简单使用
- docker-compose安装使用
- docker-compose教程(安装,使用, 快速入门)
- Docker学习笔记 — Compose简介、安装与简单使用
- Docker-Compose简介安装使用
- docker-compose 的安装与使用
- HarborRegistry——centos上使用docker-compose源码安装Harbor
- docker 使用compose安装zookeeper集群
- Linux使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错的解决办法
- Centos7上使用pip安装docker-compose
- 【翻译】使用Docker Compose一键安装安装Mesos
- Linux中Docker安装后如何使用Docker容器
- Ubuntu14.04(32位)下安装使用docker
- Ubuntu 14.04(64位)安装和使用docker
- CentOS6.6安装和使用Docker