Docker Advent Calendar 2015 の6日目に記事を投稿してみました。
今年は、仕事でDocker の環境を構築し、Docker で動くアプリケーションもリリースできたので今年はなんとなくDocker の年かなと思いました。
来年は、もう少し違う技術についてもなにか書けるようになりたいと思います。 また、社外での発表もできるようになってみたいですまる。
Docker Advent Calendar 2015 の6日目に記事を投稿してみました。
今年は、仕事でDocker の環境を構築し、Docker で動くアプリケーションもリリースできたので今年はなんとなくDocker の年かなと思いました。
来年は、もう少し違う技術についてもなにか書けるようになりたいと思います。 また、社外での発表もできるようになってみたいですまる。
Docker ハンズオンの資料を作成したので投稿してみました。 ハンズオンは探せばいくらでも出てきますが、自分が説明する機会ができたので自分でも作ってみようと思って書いてみました。
ここではハンズオンの内容をタイトルだけ書いてみました。 詳しい、実施方法はここでご確認ください。
初めてDocker コマンドを実行する人を対象にしました。 もし興味のある方がいたら、実施していただきコメントなり指摘なりをいただけると幸いです。 今回はコマンドをたたいてもらうことを中心のハンズオンにしました。 次回はDocker Compose、Docker Swam らへんを中心としたハンズオンを作成したいと思っています。
以下では、実行して気になったことを。
今回のハンズオンではCentOS7.1.1503 にDocker 1.8.1DockerProject配布のDocker をインストールしています。
Docker 1.7.1RHEL/CentOS配布のDocker の場合、/etc/systemd/system/multi-user.target.wants/docker.service
は
[Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target Wants=docker-storage-setup.service [Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker EnvironmentFile=-/etc/sysconfig/docker-storage EnvironmentFile=-/etc/sysconfig/docker-network Environment=GOTRACEBACK=crash ExecStart=/usr/bin/docker -d $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ $ADD_REGISTRY \ $BLOCK_REGISTRY \ $INSECURE_REGISTRY LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity MountFlags=slave [Install] WantedBy=multi-user.target
だったのですが、Docker 1.8.1DockerProject配布のDocker の場合
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify ExecStart=/usr/bin/docker daemon -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
だいぶシンプルです。
ただ、ここで気になるのはEnvironmentFile
が定義されなくなっていることです。
/etc/sysconfig/docker
を見ると
# /etc/sysconfig/docker # # Other arguments to pass to the docker daemon process # These will be parsed by the sysv initscript and appended # to the arguments list passed to docker daemon other_args=""
other_args
という変数が用意されているのですが、今のままでは何を書いても読み込まれることはありません。
例えば、Docker でOverlayFS
を使用しようと想った際には、/etc/systemd/system/multi-user.target.wants/docker.service
を
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker ExecStart=/usr/bin/docker daemon -H fd:// -$other_args MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
と書き換えた後に、/etc/sysconfig/docker
を
# /etc/sysconfig/docker # # Other arguments to pass to the docker daemon process # These will be parsed by the sysv initscript and appended # to the arguments list passed to docker daemon other_args="-s overlay"
とか書きなおし、Docker を起動することで対応しました。 ただ、これが正解かどうか分からないので、もし分かる人がいたら教えて下さい。 ※コメントを頂いて、Docker のversion. の問題ではなく、配布元の違いでした。訂正させていだきました。
クリエーションライン株式会社 が主催したDocker社公認トレーニングコースを受講してきました。講習内容は以下の内容でした。
内容は、docker が出てくるまでの歴史の勉強、docker の説明、実際にdocker コマンドを触ってみるハンズオン、個人用レジストリの構築、docker のためのセキュリティ(さらっと)、docker Machine、docker Swarm、docker Compose の実践と大量の内容を6時間×2日で教えてもらい自分でも作業するハードな内容でした。
トレーニング環境が与えられ、ハンズオンで試せると言っても、なぜ動いているのか、設定はこれであっているのかを考えるには短い時間でした。
社内でハンズオン形式の勉強会を実施したいと思っているので、資料を作成次第投稿をしていきたいと思う。
第2回 Docker社公認トレーニングコースが10月7日(水),8日(木)に開催される予定だそうです。(日にちは変更になることがあるそうです。) もし興味のある人は参加を考えてみたら良いと思います。
Dockerfile に似た内容があるから気になったのを自分なりにまとめているので読んでいただけると嬉しいです。 ※ 間違っている箇所の指摘などがあればいただけると大変嬉しいです。
Docker は構築の際や運用の際にストレージやネットワークのことも考えるのでインフラレイヤーのことも勉強しないとな、したいなと思います。