ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Docker コンテナの作成/実行

Docker コンテナ

イメージをベースとして実行された実行環境

コンテナの作成/実行

docker run -it --name {コンテナ名} {イメージ名} {実行コマンド}

※イメージ名はローカルにない場合、ダウンロードされる。

run コマンド  =(createコマンド+startコマンド)

createコマンド:コンテナを作成のみ

startコマンド:作成済みのコンテナを開始する。

$ docker run -it --name my-server docker.io/centos:6 /bin/bash
root@aec32698405e :/# 

CentOsベースイメージから、コンテナ名my-serverを作成・起動する。 コンテナにログイン状態になる

よく使うオプションについて

オプション 内容
-i, --interative=false コンテナの標準入力を開く
-t, --tty=false tty(端末デバイス)を使う
-d, --detach=false コンテナを生成し、バックグラウンドで実行する
--name コンテナ名

バックグラウンドで起動する。

「-d」オプションでバックグラウンド起動にんる。 「-itd」でもOK

 docker run -itd --name my-server docker.io/centos:6 /bin/bash

CentOsベースイメージから、コンテナ名my-serverを作成・起動する。 コンテナにログインはしない

ポートフォワード

「-p {ホストのポート}:{コンテナのポート}」 オプション指定でホストのポートをコンテナの指定ポートへ転送する。

 docker run -itd -p 8080:80 --name my-server docker.io/centos:6 /bin/bash

ホストの8080ポートをコンテナの80ポートへ転送する。

共有ディレクトリ指定

「-v {ホストのパス}:{コンテナのパス}」ホストのフォルダをコンテナ内部のフォルダに共有する。

 docker run -itd -v /var/www:/var/www --name my-server docker.io/centos:6 /bin/bash

ホストのvar/wwwをコンテナのvar/wwwへ共有する。

「:ro」共有フォルダを読み取り専用にする。

 docker run -itd -v /var/www:/var/www:ro --name my-server docker.io/centos:6 /bin/bash

ホスト名指定

「-h {ホスト名}」ホスト名を指定する事が出来ます。

 docker run -itd -h dbserver --name my-server docker.io/centos:6 /bin/bash
[root@dbserver /]#

/etc/hostsにホスト情報追加

「--add-host={ホストドメイン名}:{IPAddress}」

 docker run -itd --add-host=mydomain.com:127.0.0.1 --name my-server docker.io/centos:6 /bin/bash

※複数の場合、複数指定可能「--add-host=mydomain.com:127.0.0.1 --add-host=mydomain2.com:127.0.0.1

コンテナでコマンド実行後、コンテナを自動破棄する

「--rm」オプションを指定すると、コンテナを起動して指定のコマンド実行し、コマンド終了後にコンテナを自動で破棄します。

docker run -it -rm my:mysql /etc/my.cnf

作成されたコンテナの確認

稼働中のコンテナを表示します。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
f60487285325        hello-world         "/hello"            2 seconds ago       Exited (0) 2 seconds ago                        nostalgic_goldstine

すべてのコンテナを表示します。

docker ps -a

コンテナの削除

「 docker rm {コンテナID}」

$ docker rm a403ffe73d31
a403ffe73d31

※全コンテナの削除

$ docker rm `docker ps -a -q`

コンテナの開始/停止

$ docker stop {コンテナID}
$ docker start {コンテナID}

起動中のコンテナに接続

「exec」コマンドで起動中のコンテナに接続する 「docker exec -it {コンテナ名} {コマンド}」 「docker exec -u {ユーザID} -it {コンテナ名} {コマンド}」

$ docker exec -it dbserser /bin/bash
[root@dbserver /]#
$ docker exec -u vagrant -it dbserser /bin/bash

環境変数をファイル指定する

「--env-file={ファイル名}」ファイブのフィアルに環境変数を設定し起動すると環境変数が適用される

env_list

foo=bar
hoge=fuga
$ docker run -itd --env-file=env_list --name my-server docker.io/centos:6 /bin/bash