docker-composeで使いたいコマンドを入れる

スポンサーリンク

はじめに

前回Dockerfileで自分の使いたいコマンドをコンテナに導入しました。

今回は同じことをdocker-composeで実施したいと思います。

慣れるとdocker-composeのほうが楽です。コマンドも簡単ですし細かいこと考えないで済むので。(個人的感想です)

sudoなしでdockerコマンドを打つ

その前に、いい加減sudo毎度付けるの面倒なのでこちらを実施しておきます。

docker-composeのインストール

公式の通りです。

一応インストールしたときのログです。sudo su -してから行ってます。

・・・古くね?w

って公式をそのままコピペしたらダメですね。1.6.2を最新にしないと。

この時は1.21.1でした。

これでよし!

Dockerfileの作成

前回と同様ですが一応。pingがなかったのでiputils-pingを追加しています。

こちらを「Dockerfile」という名前で適当なディレクトリにおきます。拡張子なしです。

今回はtestDockerfileディレクトリにおきました。

docker-compose.ymlの作成

docker-compose.ymlを同じようにtestDockerfileディレクトリにおきます。

buildに書いてあるのは.(ドット)です。

実行コマンド

実行コマンドはこちらです。

$ docker-compose -f docker-compose.yml up -d

ログが長いので割愛しますが、うまくいけば以下のコマンドでこんな感じに見えるはずです。

個人的によく使うdockerコマンド(削除系)

ついでに個人的によく使っているdockerコマンドを残しておきます。

全部削除するコマンドの類です。この4つ全部打てばとりあえずdocker環境はきれいになるはずです。本番で打つと自分の人生がある意味きれいになるので打たないように。

docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

動いているコンテナを止めて削除までしてくれる。全部消えちゃうので本番で使ったら逝く

docker volume rm $(docker volume ls -qf dangling=true)

volume掃除用。全部消えちゃう

docker network prune -f

dockerのネットワーク関連設定を全部消しちゃう。

 docker rmi $(docker images -aq)

イメージ全部消しちゃう。でもたまにエラー吐く・・・

docker-composeだとattachできない

docker runで起動したコンテナにはdocker attachで入った後にコマンド打てますが

docker-compose経由で起動したコンテナにはdocker attachではコマンドが打てない様子。

attach使うならdocker run、docker-composeを使うならdocker execで対処。

・・・というより本番環境ではdocker attachは怖すぎて使えない。

抜け方次第ではコンテナ停止しますし。

Dockerfileとdocker-composeの違い

こんな風に使い分けてます。

・Dockerfileは1つのコンテナを作るのに使う。

・docker-composeは複数のコンテナをまとめて使うのに使う。

今回docker-composeで1つのコンテナだけ起動してますが、あんまりこういう使い方しないようですね。

最後に

Dockerfileもdocker-composeも一度自分で作ってみると理解が早いですね。

何より簡単に試せる環境が手に入るのが良いですね。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする