Docker Compose

前言

突如其来的意外让本该快乐的我快乐不起来了,感情回来一趟就上了一天线下,经历了第一次坐救护车,赶上了一位特别倔的医生,别人的一周 = 一周 48小时,我的一周 = 一周,问了问医院说体温正常三天后就可以复查,没想到还是我的医生说了算,没想到又是她,就离谱,这周的状态也不怎么好,唯一能写点的就是关于Docker Compose的了,之前启docker都是直接用命令一个一个的启动,之后潘老师说用docker-compose,写好文件,一次就能启动多个。

docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

安装

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose -uname -s-uname -m > /usr/local/bin/docker-compose
# 下载 docker-compose 到 /usr/local/bin/docker-compose 中
$ sudo chmod +x /usr/local/bin/docker-compose 
# 给 docker-compose 执行权限
$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash\_completion.d/docker-compose 
# bash 自动补全

yaml文件

以下是一个yaml文件的模板,我们把要启动的程序的信息写进去,在执行命令时便会编译和启动

version: '3' # 定义版本,不指定默认为版本 1,新版本功能更多 
services: # 容器,就像 docker run 
db: # 名称,它也是 network 中 DNS 名称 
image: mysql:5.7 # 镜像,如果像自定义镜像可以不指定这个参数,而用 build 
volumes: # 定义数据卷,类似 -v 
- db_data:/var/lib/mysql 
- .:/aaa # 挂载当前目录到容器中的 /aaa 无需使用绝对路径 
restart: always # 类似 
--restart
# 'no' 默认,不自动重启,以为 no 是 yaml 关键字所以加引号 
# always 总是自动重启 
# on-failure 当失败时自动重启,也就是 exit code 不为 0 时 
# unless-stopped 除非手动停止,否者一直重启 
environment: # 定义环境变量,类似 -e 
MYSQL_ROOT_PASSWORD: somewordpress 
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress 
MYSQL_PASSWORD: wordpress wordpress: # 第二个容器 
labels: com.example.description: "This label will appear on all containers for the web service" 
# 为容器添加 Docker 元数据(metadata)信息。例如可以为容器添加辅助说明信息。
depends_on: 
# 帮助 compose 理解容器之间的关系 
# db 将会在 wordpress 之前被启动 
# 关闭时 wordpress 将会在 db 之前关闭 
# 我们指定只启动 wordpress,db 也会跟着启动 
- db image: wordpress:latest 
ports: # 端口,类似 -p - "8000:80" 
restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress 
WORDPRESS_DB_PASSWORD: wordpress volumes: # 可选,需要创建的数据卷,类似 docker volume 
create db_data: networks: # 可选,需要创建的网络,类似 docker network create

Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
在项目目录里面新建Dockerfile文件,然后写入相关内容,具体操作见相关教程:Docker Dockerfile

启动

在项目目录执行命令:

docker-compose up -d

然后出现如下画面:
Docker Compose_第1张图片
然后输入:

docker-compose ps

查看正在运行的docker-compose的各种状态。
Docker Compose_第2张图片

在这里我是用的是mysql的环境,按照这篇教程写的:第一节 数据库初始化

总结

本以为明天就能重见光明,没想到明天是新的开始,这两天调整一下状态,下周开始好好工作,希望一切都会好的吧。

本文作者:河北工业大学梦云智开发团队 张文达

你可能感兴趣的:(docker-compose)