2020年から始めるDocker入門(CentOS7)【実践記録9】

実践記録9

前回までVagrnatとAnsibleを使ってIaCっぽい事をしてきましたが、
今回は少し路線を変えてDockerを使ってみたいと思います。

世の中的には今更って思われるのかもしれませんが、
AWS等のクラウドでコンテナをいじる前に仮想環境で経験を積んでみたいと思います。

Dockerインストール環境の準備

まずはDockerをインストールする為の仮想環境を用意します。
今回は以下の様なVagrantfileを使ってVirtualBoxに仮想マシンを1台たてることにします。

Boxの指定とサーバの作成の定義だけでも良いのですが、
ここまでの実践記録で培った経験を元にDNSやyumタイムアウト設定を入れています。

DNS設定はVagrantで構築したサーバのデフォルトのDNS設定だと名前解決ができず、
エラーとなることがあるのでGoogleの公開DNSの設定を追加しています。

yumタイムアウト設定については、
重めのファイルをインストールする時にyumコマンドがタイムアウトしないように時間を延ばす為の設定です。

vagrant upコマンドで仮想サーバをたてます。

Dockerのインストール

Dockerdocsというサービス上で使用する環境ごとにDockerのインストール方法を解説してくれています。

今回はcentOSを準備しましたので、
以下のサイトの手順に沿って実践してみたいと思います。

Docker docs

まずは以下の2つのコマンドでdockerをインストールする為の準備をします。

sudo yum -y install yum-utils
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

その後以下のコマンドでdockerをインストールします。

sudo yum -y install docker-ce docker-ce-cli containerd.io
インストールが完了したら、以下のコマンドでdockerを起動し、
ついでにサーバ起動時にdockerも起動されるようにします。
sudo systemctl start docker
sudo systemctl enable docker
ここまで準備ができたら以下のコマンドでdockerが稼働しているか確認してみます。
sudo docker run hello-world
hello-worldコンテナはテスト接続用のコンテナです。
コンテナはdocker pullコマンドでコンテナイメージを取得してからdocker runコマンドでコンテナを実行することも、
直接runコマンドを実行してコンテナイメージの取得と実行を同時に行うこともできます。
続きを行う前に以下のコマンドでsudoを使わなくてもコマンドを実行できるようにしておきます。
sudo usermod -aG docker vagrant
今回はvagrantを使用しているので末尾をvagrantにしていますが、この部分は使用しているユーザー名でコマンドを実行すればOKです。
上記コマンド実行後、一度仮想マシンから抜けて再度ログインしないと
権限は反映されないようなので注意してください。(軽くはまりました)
先ほど実行したhello-worldコンテナイメージが取得されているはずなので以下のコマンドで確認してみます。
docker image ls
確かにインストールされているようですね。
今度はnginxのコンテナを起動してみたいと思います。
docker run –name demonginx -d -p 8080:80 nginx:latest
体感的には私の環境で30秒かかったかどうかくらいでdockerイメージの取得から起動まで完了しました。
–nameの後ろはコンテナにつける名前を記載します。
-dオプションはコンテナをバックグラウンドで実行、-pオプションはコンテナのポートとホストのポートをマッピングします。
ホストOSのブラウザから8080番ポートで仮想マシンにアクセスしてみたところ
以下の通りnginxが稼働していることが分かります。
実際に動いているところを見ると安心しますね。
おまけでDockerをインストールした状態の仮想マシンをvagrantでさくっと構築できるように
vagrantfileを以下の様に修正しておきます。
とりあえずdockerをインストールしてコンテナを稼働させるところまでできたので、今回はここまでにします。

続きは以下の記事になります!

関連記事

実践記録10遂に実践記録も10記事目!二桁に到達しました!!最新技術にはまだまだ追いつけていませんが、順調に経験を積めていると自分では思っています。もうしばらくは広く浅く様々な技術に触れていきたいと思います。実践記録[…]