はじめに
Dockerはオープンソースのコンテナ型仮想化ソフトウェアです。VirtualBoxやVMWare等のサーバー仮想化技術とは異なり、一つのOS上に独立したユーザー空間を作ることによって仮想化を実現するため、リソースの使用量が少なくて済むという特徴を持ちます。
導入
DockerをCentOS7上にインストールします。(ちなみにv1.8以降はCentOS6のサポートはされない模様です。)
リポジトリの登録
まず、Dockerの公式リポジトリをyumに登録します。
$ sudo vim /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
Dockerのインストール
yumを利用して、docker-engineパッケージをインストールします。
$ sudo yum install docker-engine
SELinuxが有効の場合は、docker-selinuxもインストールします。
$ sudo yum install docker-selinux
自動起動設定
dockerサービスがサーバー起動時に自動起動されるよう設定します。
$ sudo systemctl enable docker
起動
dockerサービスを起動します。
$ sudo systemctl start docker
コンテナの作成
コンテナイメージのダウンロード
準備が整ったのでコンテナを作成します。コンテナの作成には、その基となるコンテナイメージを利用します。各Linux OSのコンテナイメージはDocker Hubというリポジトリで公開されています。例えば、CentOSのコンテナイメージをダウンロードする場合は、以下の様にします。
$ sudo docker pull centos
ダウンロードしたコンテナイメージはローカルリポジトリに保存されます。保存されているイメージの一覧を確認するには、imagesコマンドを実行します。
$ sudo docker images
コンテナの作成
コンテナイメージを利用してコンテナを作成するにはrunコマンドを実行します。使用するイメージと作成したコンテナ上で実行するコマンドを引数として与えます。
$ sudo docker run centos echo "Hello World"
また、コンテナ作成後にログインをしたい場合は、-i(標準入力を開け続ける)と-t(疑似端末を割り当てる)のオプションを与えた上で、コマンドとしてシェルを指定します。
$ sudo docker run -it centos bash
[root@xxxxxxxxxxxx /]#
コンテナから抜けるにはexitコマンドを実行します。その際、コンテナは自動的に停止します。
[root@xxxxxxxxxxxx /]# exit
$
また、コンテナを作成する際に、コンテナに名前を設定するには–nameオプション、ホスト名を設定するには–hostname(または-h)オプションを利用します。
$ sudo docker run --name test-container --hostname test-host centos
コンテナの削除
存在しているコンテナの一覧を確認するにはpsコマンドを利用します。オプション-aによって、停止しているコンテナを含めて全てが表示されます。
$ sudo docker ps -a
削除したいコンテナを確認したら、IDまたはNAMEを指定してrmコマンドを実行します。実行中のコンテナを削除する場合は-fオプションを付与します。
$ sudo docker rm de3d1454fd9e