Dockerまとめ
環境はCentOS7のはず。
インストール方法
curl -fsSL get.docker.com -o get-docker.sh sh ./get-docker.sh
あるいは単にcurl -fsSL get.docker.com | sh
でもいいかもしれない。
Dockerの起動
systemctl start docker
Dockerの状態を確認するにはsystemctl status docker
サーバ起動時にDockerも起動する場合は
systemctl enable docker
使い方
基本的にはgitやlinuxのコマンドを踏襲した名前のサブコマンドを使って管理する。
例えば、imageの一覧はdocker image ls
のような感じになる。
コンテナの動かし方
イメージとコンテナがある。 イメージはコンテナの設計図のようなもので、何をインストールしてどのコマンドを実行するべきかなどの情報を持っているらしい。 一方コンテナは実際に稼動しているサービスのファイルシステムのようである。 イメージに従いコンテナを作りあげ、Dockerはそのコンテナの中でサービスを動かすといったような感じだろうか? 実際のコマンドは以下のような感じになる。
docker container run hello-world
hello-worldというのはリポジトリにある、Helloと表示するだけのDockerイメージである。 これを使ってDockerが使えるかどうか試せる。 他のイメージでもだいたい同じようにして動かせる。
Dockerではコンテナの実行が終了するとそのコンテナを破棄するらしい(実際はしばらくの間/var以下にあるっぽい)。 なので、データを保存したり次の実行時に使う場合には-vを使って共有する領域に書き出すようにするなどの工夫が必要になる。
イメージのダウンロード
どこかが用意したリポジトリから既に設定されたイメージを使うことができる。 基本的に動かそうとしたときにローカルにないなら自動的にダウンロードされることになる。
Dockerイメージの作り方
- docker container commit
- コンテナから作る方法、知らない
- docker image build
- Dockerfileから作る方法、教わった
Dockerfileはこんな感じになった。 FROMには元となるイメージ、このイメージの上に新しい皮を被せていく感じで構成していくことになる。 RUNはコンテナを構成するときに実行するコマンド、ソフトウェアのインストールとか。 CMDはコンテナとして実行されたときにデフォルトで実行するコマンド、hello-worldと自動で表示されたのはこれによるものだと思われる。
FROM base image RUN running-command(like apt install something) CMD defalut-running-command
ビルドするには以下のようにする。
docker image bulid -t image-name path"
dockerhubへのログイン
githubのようなサービスとして、イメージを共有できるdockerhubがある。 ログインしておくとイメージのアップロード、ダウンロードができるようになる。 ログインからアップロードまでの流れ。
docker login docker image tag image-name:tag <user-name>/image-name:latest docker image push <user-name>/image-name docker logout
まとめ
後でもっと詳しく書く。 ほかにもいくつかのイメージをまとめたものをまとめて扱うといったようなこともできる。