当前位置 知且行 linux docker-compose入门基本用法

docker-compose入门基本用法

概况

多个 docker 容器的管理,如果采用手动的方式,是很恶心人,每次都要执行一连串的操作,如此低效肯定无法令人忍受。于是,用于批量管理 docker 容器的工具 docker compose 踏着七彩祥云来了。

Docker compose 只需要通过一个 yml 文件定义,就可以实现对多容器进行管理

docker-compose.yml 配置文件的三大概念

  • Services
  • Networks
  • Volumes

配置文件需要申明版本,现在统一都是版本 3

一个 service 代表一个 container, 这个 container 可以从 dockerhub 的 image 来创建,或者从本地的 Dockerfile build 出来的 image 来创建

Service 的启动类似 docker run, 可以指定 network 和 volume

services:
  db:
    image: postgres:9.4
    volumes:
      - "db-data:/var/lib/postgresql/data"
    networks:
      - back-tier

等同于:

$ docker volume create db-data
$ docker network create -d bridge back-tier
$ docker run -d --network back-tier -v db-data:/var/lib/postgresql/data postgres:9.4

另一种指定方式:

services:
  worker:
    build: ./worker
    links:
      - db
      - redis
    networks:
      - back-tier

安装

mac 的安装包已经默认安装了 docker-compose

$ docker-compose --version
docker-compose version 1.24.1, build 4667896b

Linux 的安装参见 文档

常用命令

以构建 wordpress 为例 配置源码

  • docker-compose up 启动,默认读取当前目录下的 docker-compose.yml 文件,加 -d 设置为后台运行
$ docker-compose up -d
Starting wordpress_mysql_1 ... done
Starting wordpress_wordpress_1 ... done
  • docker-compose stop 停止

  • docker-compose start 开启

  • docker-compose down 停止并删除相应的容器、网络等

  • docker-compose ps 查看状态

$ docker-compose ps
        Name                       Command               State    Ports
-----------------------------------------------------------------------
wordpress_mysql_1       docker-entrypoint.sh mysqld      Exit 0
wordpress_wordpress_1   docker-entrypoint.sh apach ...   Exit 0
  • docker-compose exec 进入容器
$ docker-compose exec wordpress bash
root@c4afd7ff4186:/var/www/html# exit
  • docker-compose images 列出镜像
$ docker-compose images
      Container         Repository    Tag       Image Id      Size
-------------------------------------------------------------------
wordpress_mysql_1       mysql        5.7      e1e1680ac726   356 MB
wordpress_wordpress_1   wordpress    latest   7dcb194f4a6b   478 MB

docker-compose 通过本地 Dockerfile 构建镜像

源码

执行后的效果:

重新构建

修改配置文件后,要执行以下步骤

$ docker-compose down
$ docker-compose build
$ docker-compose up
转载必须注明出处:https://www.zhiqiexing.com/155.html

关于我

我希望能成为一个认真、有趣、创造更多价值的人
关注微信
微信扫一扫关注我

微信扫一扫关注我

返回顶部