CentOS6.7でDockerを使う

̃Gg[͂ĂȃubN}[Nɒlj

docker_logo
 
CentOS6.7にDockerをインストールし、基本的なコンテナ(centos:centos6)を使用する手順を記載。


インストール


yumでDockerを入れる。

#epelリポジトリ追加
yum install epel-release -y

#dockerインストール
yum install docker-io -y

必要に応じて(必要になった時でよい)docker-composeも入れる。

#githubから入手
curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose

#/opt/bin/にでも置いておく
mkdir /opt/bin
mv ./docker-compose /opt/bin/

docker-composeは複数のコンテナを管理できる。

例えばsameersbn/docker-redmineはRedmine用コンテナとDB(postgresql)用コンテナの2つで構成されているが、
docker-compose.ymlを入手(上記のREADME.md参照)して/opt/bin/docker-compose up コマンド一発で立ち上がる。
最速でRedmineを立ち上げる方法の一つであろう。

 

Dockerイメージの入手


DockerイメージはDocker Hubにいろいろある。
例) CentOSのイメージを入手

#centos6イメージの入手
docker pull centos:centos6

 

コンテナ新規起動


docker runでコンテナが新規で立ち上がる。

#コンテナ新規起動
# -it 標準入力を受け付けてくれる
# --name コンテナの名前。つけておくと吉。docker startやstopする時に名前で指定できる。
# -h ホスト名。つけておくと吉。怠ると勝手につけられる。
# -p ポートフォワーディング。ホストポート番号:ゲストポート番号形式。これでコンテナ外部・コンテナ間で通信できるぞ。
# -v ディレクトリのマウント。ホストディレクトリ:ゲストディレクトリ形式。これでコンテナ外部・コンテナ間とファイル共有ができるぞ。
docker run -it --name test_cent6 -h test_cent6 -p 11111:11111 -p 22222:22222 -v /root/docker:/root/docker centos:centos6 /bin/bash

上記コマンドを実行するとコンテナ内で/bin/bashが使える状態となる。
exitでコンテナを終了して抜ける。
Ctrl+p Ctrl+qでコンテナを終了せずに抜ける。

-pのポートフォワーディング設定は後からの変更は(ごり押しでなんかすればできるんだろうけど)簡単な方法は見つからなかった。
そのコンテナのメインの利用用途のポートの他に、
いろいろ汎用的に使う用のポート番号も保険で指定しておくことも視野に入れておくと吉か。

dockerコンテナへのファイル格納、コンテナからのファイル取り出しはコマンドでもできるが、いちいちコマンド打つのはめんどい。
それよりも上記のように-vでディレクトリをマウントしておくと普通にファイル共有できるので楽である。

/bin/bashはそのコンテナで実行するコマンドとして指定。
コンテナ内で作業したいのでbashを指定している。

 

最頻出コマンド


dockerを使う上で頻出するコマンドを記載する。
以下を覚えていればとりあえず不自由しない。

コンテナから抜ける 前述の通り。以下に再掲。
・終了して抜けるにはコンテナ内のbashでexit
・終了しないで抜けるには、Ctrl+p Ctrl+q
コンテナの終了 コンテナ内でbashでexitコマンドを実行するか、以下。

#終了
docker stop test_cent6
動作中のコンテナに接続 docker attach コンテナ名

docker attach test_cent6
コンテナ一覧表示
#動作中(run or start済み)コンテナのみ
docker ps

#終了しているコンテナも含めて表示
docker ps -a
コンテナの開始→接続
#開始
docker start test_cent6
#接続
docker attach test_cent6
bashを明示的に指定してコンテナに入りたい docker runでコマンドにbashを指定していないコンテナだが、入って作業したい時など。

docker exec -it コンテナ名 /bin/bash

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>