前言
突如其来的意外让本该快乐的我快乐不起来了,感情回来一趟就上了一天线下,经历了第一次坐救护车,赶上了一位特别倔的医生,别人的一周 = 一周 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 ps
查看正在运行的docker-compose的各种状态。
在这里我是用的是mysql的环境,按照这篇教程写的:第一节 数据库初始化
总结
本以为明天就能重见光明,没想到明天是新的开始,这两天调整一下状态,下周开始好好工作,希望一切都会好的吧。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。