うさぎ好きエンジニアの備忘録

うさぎたちに日々癒されているエンジニアが業務で直面したもの & 個人的な学習メモを残していきます。

Docker Composeでコンテナを起動・停止

(個人備忘録です。)

事前準備的なやつ

バージョン確認

$ docker-compose version
docker-compose version 1.24.0, build 0aa59064
docker-py version: 3.7.2
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

docker-compose.yamlの作成

version: "3.3"
services:
    echo-test:
        image: example/echo:latest
        ports:
            - 8000:8080

ディレクトリ構成

ディレクトリ構成はこんな感じ。

.
├── docker-compose.yaml
├── Dockerfile
└── main.go

起動・停止

コンテナの起動

$ sudo docker-compose up -d
Creating network "docker-test_default" with the default driver
Creating docker-test_echo_1 ... done

$ sudo docker container ls
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                   NAMES
d9aabf2fa453        example/echo:latest   "go run /echo/main.go"   5 seconds ago       Up 5 seconds        0.0.0.0:8000->8080/tcp   echo-test_1

コンテナの停止

$ sudo docker-compose down
Stopping echo-test_1 ... done
Removing echo-test_1 ... done
Removing network default

おまけ:docker-compose upのときにイメージもビルドする

docker-compose.yamlの中でbuild属性を記述すればいける。

version: "3.3"
services:
    echo:
        build: .
        ports:
            - 8000:8080

↑の例だと、docker-compose.yamlと同じ階層に存在するDockerfileをビルドできる。 すでにイメージがビルドされている場合はスキップしてコンテナの実行を実施するが、--buildオプションを指定することで必ずDockerイメージのビルドを実施させることが可能。

こんな感じ。

$ sudo docker-compose up -d --build