Docker Compose

一.​​​​​​什么是Docker Compose

        Docker Compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具。使用 Docker Compose 时,只需要在一个配置文件中定义多个 Docker 容器,然后使用一条命令启 动这些容器。Docker Compose 会通过解析容器间的依赖关系按先后顺序启动所定义的容器。

二.Docker Compose的安装 

[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

[root@localhost ~]# chmod +x /usr/local/bin/docker-compose        #加执行权

[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose    #可在其他位置使用Docker-Compose命令

[root@localhost ~]# docker-compose --version

三.文件格式以及编写注意事项

        YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。类似于 XML数据描述语言,语法比 XML 简单的很多。YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号([])括起来, hash 用花括号({})括起来

使用 YAML 时需要注意下面事项:

(1)不支持制表符 tab 键缩进,需要使用空格缩进。

(2)通常开头缩进两个空格。

(3)字符后缩进一个空格,如冒号、逗号、横杆。

(4)用#号注释。

(5)如果包含特殊字符,要使用单引号('')引起来。

(6)布尔值(true、 false、 yes、 no、 on、 off)必须用引号("")括起来,这样分析器会将它们解释为字符串。

四.常用字段

字段

描述

build  dockerfile  context

指定Dockerfile文件名构建镜像上下文路径

image

指定镜像

command

执行命令,覆盖默认命令

container name

指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale

deploy

指定部署和运行服务相关配置,只能在Swarm模式使用

environment

添加环境变量

networks

加入网络

ports

暴露容器端口,与-p相同,但端口不能低于60

volumes

挂载宿主机路径或命令卷

restart

重启策略,默认no,always,no-failure,unless-stoped

五.常用命令

列1

列2

字段

描述

build

重新构建服务

ps

列出容器

up

创建和启动容器

exec

在容器里面执行命令

scale

指定一个服务容器启动数量

top

显示容器进程

logs

查看容器输出

down

删除容器、网络、数据卷和镜像

stop/start/restart

停止/启动/重启服务

六.compose的案例

1.编写文件

[root@localhost ~]# vim docker-compose.yaml

version: '2'                #版本号,现以弃用
services:                   #定义一个或多个服务。这里只有一个服务 webapp
  webapp:                  
    image: 'nginx'          #使用的 Docker 镜像为 nginx
    ports:                  #将容器的端口映射到宿主机的端口
      - "80:80"
    volumes:                #将宿主机的目录或文件挂载到容器中。
      - "/www/html:/www/html:rw"                        #具有读写权限
      - "/opt/nginx/nginx.conf:/etc/nginx/nginx.conf"   #用于自定义 Nginx 配置

2.修改nginx配置文件

将nginx的配置文件上传到docker主机上

[root@localhost ~]# mkdir /opt/nginx
[root@localhost ~]# vim /opt/nginx/nginx.conf 

nginx.conf配置文件的内容为

#user  nobody;
worker_processes  1;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /www/html;
            index  index.html index.htm index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           /www/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

}

3.执行文件,生成容器

docker-compose up -d

4.列出当前运行的容器

[root@localhost ~]# docker-compose ps


[root@localhost ~]# docker-compose stop webapp    #停止容器运行

[root@localhost ~]# docker-compose rm webapp  #删除容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值