目录

1. docker-compose简介

2. docker-compose.yml简单配置说明

3. docker-compose运行

1. docker-compose简介与安装

  1. 简介

docker-compose是编排docker容器的, 就是管理这一批容器, 进行批量配置, 起动, 暂停, 删除容器等. 如果有多个容器, 使用docker一个个启动慢, 如果容器间有依赖, 还需要手动指定, 还有环境变量, 可以 一起设置.

  1. 使用下面命令安装docker-compose和docker. 或使用
yum remove docker \
              docker-common \
              docker-selinux \
              docker-engine


yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2


yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

yum -y install docker-ce

systemctl enable docker
systemctl start docker

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

2. docker-compose.yml简单配置

这里以wordpress-nginx-mariadb为例

参数说明

# 设置docker-compose 版本
version: "3"

# 容器服务
services:

# 服务名称
  mariadb:
# 拉取镜像和镜像版本, 本地没有, 自动会拉取
    image: mariadb:10.2
    # 容器名称
    container_name: mariadb_v1
    # 容器环境, 设置mysql root密码, 用户名, 用户密码, 库
    environment:
      MYSQL_ROOT_PASSWORD: password_QUI356_ccf
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordone
      MYSQL_PASSWORD: wordpress_weiki_JKL_sdf1
    # 挂载外部磁盘目录, 相当于容器和数据分开存放, 删除容器, 外部磁盘数据仍在
    volumes:
      - ./lib/mariadb:/var/lib/mysql
      - ./var/log/mysql:/var/log/mysql
    # 暴露服务器端口, 格式是 外部端口:内部容器端口
    ports:
      - 3306:3306
  nginx:
    image: nginx:1.14.2
    container_name: nginx_v1
    volumes:
      - ./etc/nginx/conf:/etc/nginx
      - ./var/log/nginx:/var/log/nginx
      - ./wordpress:/usr/share/nginx/html
    ports:
      - 80:80
    links:
      - wordpress
  wordpress:
    depends_on:
      - mariadb
    links:
      - mariadb
    image: wordpress:php7.1-fpm
    container_name: wordpress_v1
    volumes:
      - ./wordpress:/var/www/html
    # 其他容器环境中, 以链接mariadb服务
    environment:
      WORDPRESS_DB_HOST: mariadb
      WORDPRESS_DB_USER: wordone
      WORDPRESS_DB_PASSWORD: wordpress_weiki_JKL_sdf1
      WORDPRESS_DB_NAME: wordpress

3. docker-compose运行, 直接拉取已经设置的配置

  1. 使用git克隆docker-compose库, 并存放在当前用户目录中(即cd ~/ 所在地方)

git clone https://github.com/Charles-one/docker-compose.git ~/docker-compose
  1. 复制一份执行文件到用户目录中

cp -r ~/docker-compose/wordpress-nginx-mariadb ~/wordpress-nginx-mariadb
  1. 进行文件夹中, 使用docker-compose 下载镜像, 构建镜像

# 进行需要运行的docker-compose库中
cd ~/wordpress-nginx-mariadb

# up 表示构建, -d后台运行
# 运行后需要下载镜像, 时间比较长.
docker-compose up -d
  1. 查看wordpress服务

访问地址:

http://你的服务器ip

设置用户密码即可使用

  1. 其它docker-compose命令
# pull 拉取服务镜像
docker-compose pull

# up 运行服务并输出, 可使用control + c结束容器
docker-compose up

# start 启动一个已经存在的服务容器
docker-compose start

# stop 停止已经运行的容器, 不会删除, 可用start再启动
docker-compose stop

# rm 删除已经停止的容器
docker-compose rm

# ps 列出所有容器
docker-compose ps

# run 在服务上执行一个命令
docker-compose

# logs 查看服务输出
docker-compose logs
docker-compose logs -f