Docker 让建置服务变得非常简单,但相对马上会面临另一个困难--如何管理?
今天将会使用 Docker Compose 工具来帮忙管理容器。
安装
安装可以参考 Docker Compose 的 GitHub Release 。目前看到的是 1.9.0 版,安装指令如下:
Docker Compose 的设定档有分 version 1 与 version 2 ,以下范例使用 version 1 。
Hello Compose
产生容器的指令如下:
把它转换成 Docker Compose 的方式,首先先建立 docker-compose.yml 档案:
接着下启动指令:
-d 代表会在背景执行
现在 PHP Apache 容器已经开好了,并且资料夹也同步, port 也开出去,可以开始开发了。
Docker Link
PHP 开发大部分都需要连 MySQL ,那该怎么设定? Docker 原生的指令需要先建 MySQL ,建 PHP 的时候再设定 Link :
接着就可以在 Apache 里面使用 my-mysql 这个 hostname 连到 MySQL :
但这么多指令实在是很难懂,但换用 Docker Compose 是长这样:
启动一样使用 docker-compose up -d 即可,是不是好懂许多了呀!
其他指令
Docker Compose 其他常用的指令如下:
docker-compose logs
在 up 之后,可以用这个指令去查看容器的 Log ,这对 debug 或 monitor 是非常方便的。
docker-compose build
每个服务(指的是上例的 web 与 mysql )下面一定要有定义 image 或是 build , image 表示要拉别人上传好的, build 表示要自己来。这个指令可以直接执行全部有 build 元素的服务。
docker-compose pull
同上,但是行为是 pull 所有有 image 元素的服务。
docker-compose run
跟 docker run 类似,会产生全新的容器,而这个容器的设定会完全依照 docker-compose.yml 档案里定义的执行。
docker-compose exec
跟 docker exec 类似,会在正在执行的容器上,执行新的指令。
閱讀更多 Java高級開發工程師 的文章