4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS/EC2にCentOS7を入れてDockerホストを作成 その3

Last updated at Posted at 2015-12-09

前回(その2)からの続きです。

Docker をインストール

ここまで色々と準備をしましたが、ようやく Docker のインストールです。Docker の公式レポジトリが使えますので簡単です。この辺を参照にさくっといきましょう。

[root@ip-XXX-XXX-XXX-XXX ~]# curl -sSL https://get.docker.com/ | sh

(もろもろの出力は略)

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

[root@ip-XXX-XXX-XXX-XXX ~]# systemctl start docker

[root@ip-XXX-XXX-XXX-XXX ~]# systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

[root@ip-XXX-XXX-XXX-XXX ~]# useradd docker-op

[root@ip-XXX-XXX-XXX-XXX ~]# usermod -aG docker docker-op

これで /etc/yum.repos.d/docker-main.repo というファイルが作られて、yumでインストールを行うところまで勝手にやってくれます。以降はyumで簡単にアップデートできますね。

Docker を立ち上げて、自動起動するように設定をしました。インストール時の出力の最後にdockerグループのユーザを追加しろと書いてあったので、docker-op というユーザを作りました。root で作業する人は不要でしょう。

Docker Composeもインストール

Docker を使う上で、後々はDocker Composeを使うことはほぼ必須となってきますので、この段階でいれてしまいます。このへんを参考にさらっと入れてしまいましょう。2015年12月9日現在は 1.5.2 が最新のようです。

[root@ip-XXX-XXX-XXX-XXX ~]# curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   600    0   600    0     0    602      0 --:--:-- --:--:-- --:--:--   602
100 7739k  100 7739k    0     0  1050k      0  0:00:07  0:00:07 --:--:-- 1820k

[root@ip-XXX-XXX-XXX-XXX ~]# chmod +x /usr/local/bin/docker-compose

Docker のファイルが置かれるディレクトリを、追加したボリュームに移動

Docker でいっぱいイメージを落としてきたり、コンテナを立てたりすると、あっという間にディスクを使い果たしてしまいます。ここで、Docker が追加したボリュームを使うように修正します。一度、Docker のサービスを停止して、/var/lib/docker をまるっと追加したボリュームに移動し、元の場所にはシンボリックリンクを張ることで対応します。

[root@ip-XXX-XXX-XXX-XXX ~]# systemctl stop docker

[root@ip-XXX-XXX-XXX-XXX ~]# mkdir -p /mnt/ebs/var/lib

[root@ip-XXX-XXX-XXX-XXX ~]# mv /var/lib/docker /mnt/ebs/var/lib/

[root@ip-XXX-XXX-XXX-XXX ~]# cd /var/lib/
[root@ip-XXX-XXX-XXX-XXX lib]# ln -s /mnt/ebs/var/lib/docker

[root@ip-XXX-XXX-XXX-XXX lib]# systemctl start docker

Docker のサービスが普通に立ち上がれば問題ないでしょう。

Dockerのテスト 'Hello World'を出力

Docker の最小限のテストをします。他の説明サイトでも'Hello World'を出力する説明がよく出ていますが、Docker の仕組みが分かっていないと、この意味もよく分かんないですよね。けど、頑張って使っていけばいずれ分かるようになりますので、ここでは深く説明せず、Docker の動作確認の目的です。

008.png

画像が見にくくて申し訳ありませんが、CentOS7 のイメージを落としてきてコンテナを立ち上げ、コンテナの中の/bin/echoコマンドで'Hello World'を出力し、そのままコンテナは終了しています。最後の行にあるのが、コンテナのプロセスの状況ですが、「Exited(0) 12 seconds ago」というのが、それを表しています。

NAMES のところに「drunk_albattani」とか出てて、何も知らない頃の私は「何じゃこれ? 誰かが勝手に立ち上げたの?」とびっくりしていたのですが、--name オプションをつけないと勝手にそれっぽい名前をつけるという Docker の仕様でした。このへんを参考いただくといいかと思いますが、知らない人はびっくりしますw もっと無機質な名前をつけてくれた方が私はありがたかった…

ということで、その3まで書いてしまいましたが、ここまでで AWS/EC2 に CentOS7 を入れた Docker ホストの最低限というところだと思います。これ以外にも細かな設定や調整などは必要かと思いますので、各自対応ください。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?