2018-05-27_Dockerを使ってみる

インストール方法

xubuntu18.04だと安定しない部分があり別途記載します。

Dockeイメージの入手

Docker Hubと呼ばれるコンテナイメージが公開されているサイトがあります。 そこから必要なイメージをダウンロードします。

例えばcentoosはlibrary/centos - Docker Hubに公開されており対応する名称をpull時に指定することでダウンロードされます。

1
#r docker pull centos:centos7

ローカルに保存されたイメージの確認はimagesで行います。

1
2
3
4
5
#r docker images

##c 結果
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos7             e934aafc2206        7 weeks ago         199MB

コンテナの起動

コンテナを起動するにはdocker runコマンドを実行します。

1
2
3
4
5
6
7
8
9
##c docker run --name コンテナ名 オプション
#r docker run --name testcont -it centos:centos7 /bin/bash

##c 起動後bashプロンプトが表示されていればOK
[root@9c9ba7ea5586 /]#

##c OSバージョンの確認
[root@9c9ba7ea5586 /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

オプションを指定する事で挙動が変わります。

オプション 効果
--name 作成するコンテナに名前をつける
-h コンテナのホスト名を指定
-i コンテナ起動時に標準入力受け付ける
-t ttyを割り当てる

コンテナの状態確認

コンテナの状態はdocker ps -aで確認します。

1
2
3
4
5
6
7
8
9
##c 実行コマンド
#r docker ps -a

##c 結果
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
9c9ba7ea5586        centos:centos7      "/bin/bash"         30 minutes ago      Exited (0) 7 seconds ago                       testcont
5715a9d37826        centos:centos7      "/bin/bash"         2 hours ago         Up 2 hours                                     centos7

##c testcontコンテナは終了centos7コンテナは起動中

コンテナの終了

bashからexitで抜けると終了します。 また、ホスト側から終了させたい場合は下記のようにdocker sutop ${コンテナ名}を実行します

1
#r docker stop ${contname}

dockerを使ってみて感じたこと

コンテナが一瞬で起動して、centos7環境にアクセス出来ました。 ホストOSに関係なく環境構築が出来るのは凄いなぁと思います。 Virtualboxなどのホスト型の仮想環境ソフトよりもリソースも食わないので便利ですね。

今まではRHEL系をサーバーで使うことが多いからとcentosをVirtualboxにインストールして使ってきましたが 個人で勉強に使う分にはubuntuだったりdebianなど好きな系統のディストリビューションをホストにして、コンテナレベルでcentos環境を動かせば事足りそうです。

今回はdockerfileは触れませんでしたが、継続して勉強していきます。

補足

今回使ったcentos7はipコマンドがなかったので別途インストールが必要

1
2
##c コンテナ内のrootユーザーで実行
#r yum -y install iproute