どんな物かは知ってたけどまだ手を出してなかったので使ってみた
run.sh:普段使っていた起動スクリプト
Docker for {Windos|Mac} にはデフォルトでdocker-compose入ってるみたいなので残しておく事はなさそうだけど、今まで使っていたrun用のシェル(run.sh)
docker run --privileged -d -it -p 19022:22 -p 80:80 -p 443:443 --hostname 9zilla --name 9zilla 9zilla:latest /sbin/init
docker-compose.ymlに移す
↑のrun.shの内容をdocker-compose.yml
に書き換えるとこうなった
version: "2"
services:
9zilla:
container_name: 9zilla
hostname: 9zilla
image: nobiki/9zilla:latest
ports:
- "80:80"
- "443:443"
- "19022:22"
networks:
b0:
ipv4_address: 172.18.0.100
privileged: true
command: /sbin/init
networks:
b0:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.18.0.0/16
gateway: 172.18.0.1
公式のマニュアル → Compose file reference
docker-composeコマンドの使い方メモ
基本的には、docker
コマンドとほぼ同じで、down
とup
が用意されてるようだ
$ docker-compose up --help
Usage: up [options] [SERVICE...]
Options:
-d Detached mode: Run containers in the background,
print new container names.
Incompatible with --abort-on-container-exit.
--no-color Produce monochrome output.
--no-deps Don't start linked services.
--force-recreate Recreate containers even if their configuration
and image haven't changed.
Incompatible with --no-recreate.
--no-recreate If containers already exist, don't recreate them.
Incompatible with --force-recreate.
--no-build Don't build an image, even if it's missing.
--build Build images before starting containers.
--abort-on-container-exit Stops all containers if any container was stopped.
Incompatible with -d.
-t, --timeout TIMEOUT Use this timeout in seconds for container shutdown
when attached or when containers are already
running. (default: 10)
--remove-orphans Remove containers for services not
defined in the Compose file
$ docker-compose down --help
Usage: down [options]
Options:
--rmi type Remove images. Type must be one of:
'all': Remove all images used by any service.
'local': Remove only images that don't have a custom tag
set by the `image` field.
-v, --volumes Remove named volumes declared in the `volumes` section
of the Compose file and anonymous volumes
attached to containers.
--remove-orphans Remove containers for services not defined in the
Compose file
docker-compose up -d
すると、docker-compose.ymlのimage:
に記載したイメージを勝手にpullしてくれる、また、既にpullしてあった場合はスキップしてくれたりするので、コンテナ起動までワンライナーで行ってくれる。
// 起動
$ docker-compose up -d
コンテナを終了や破棄する時はdocker-compose down
する。--rmi
オプションでイメージ削除まで行ってくれる。
// 停止
$ docker-compose down
公開してみた
今回これを作成すると同時に、Automated buildを使っていつも使ってる自分の開発環境(9zilla)を公開してみた
Github: nobiki/9zilla
DockerHub: nobiki/9zilla