NO IMAGE

ディストリビューション : CentOS7

アプリケーション : Docker docker-ce-18.03.1

Dockerとはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである

筆者が感じた使用用途としては、開発環境、WEBアプリケーション等「アプリケーション単位」で仮想化を行う目的であれば有意義なものであると感じたが、これをハイパーバイザー(vmware, KVM等のマシーン仮想化)と置き換えて運用をすることには疑問が生じる。想定されている利用目的が違うにも関わらず、vmwareやKVMと比較されているサイトが多いのは少々疑問を感じた。

基本的には仮想OS上からDockerを起動し、そのうえでApacheのコンテナの起動や、MySQLのコンテナの起動になるかと思います。メリットとしたら、「アプリケーションの管理がしやすくなるかも」「セキュリティーを確保しやすくなるかも」。デメリットとしたら、現時点のCentOS標準ではない「iptables」で運用しなければならない?、作業量が増える、管理の手間が増える少し触った感じではこのように感じた。

要は使い方次第なのかな。

ここでは、簡単な内容でDockerのインストールからApacheの起動までを記載する。
正解なやり方が非常に分かりずらい、コマンドオプションの順番を間違えてもエラー発生しない等々、なのでこれから作業する内容をまずは箇条書きで示す。コマンド以外の管理方法は、「docker compose」「GUI管理ツール」を利用した方法もある。

作業方法に関しては色々な情報があるので一つの参考例とする。

1. DockerリポジトリーからCentOSをダウンロード

2. CentOSイメージからコンテナを作成

3. 作成したコンテナにApacheをインストール

4. Apacheがインストールされたコンテナをイメージに変換

5. コンテナのポート80をローカルのポート80にバインドして起動

 

Dcokerインストール

yum-config-manager --enable docker-ce-test
yum-config-manager --disable docker-ce-edge
yum install docker-ce
yum-config-manager --disable docker-ce-stable

iptableインストール

systemctl stop firewalld.service
systemctl disable firewalld.service
yum -y install iptables-services
systemctl start iptables.service
systemctl enable iptables.service

 

Dockerが自動でポートフォワーディングの設定を追加するのでiptableを操作することはありません。また、Dockerをインストールすると「docker0」のブリッジインターフェイスが追加されています。

 

最新のCentOSのイメージをDocker公式リポジトリからダウンロード

docker pull centos

イメージ一覧

docker images

イメージ削除

docker rmi イメージID

コンテナ起動

docker run -i -t centos /bin/bash

コンテナのターミナルから「exit」でコンテナを終了

Ctrl+p, Ctrl+qでコンテナを中断

コンテナ終了

docker stop コンテナID

コンテナ再起動

docker start コンテナID

コンテナ接続

docker attach コンテナID

起動しているコンテナの確認

docker ps

終了しているコンテナの確認

docker ps -a

コンテナ削除

docker rm コンテナID

 

コンテナを起動したら、「システムアップデート」「Apacheのインストール・設定」作業を済ませます。systemctlでサービスの起動はしないが、サービスの有効は行う。 systemctl enable httpd.service

 

イメージの作成(Apache:httpd)

docker commit コンテナのID centos/httpd

特権をつけて起動

docker run --privileged -d -p 80:80 --name httpd centos/httpd /sbin/init

特権&マウントして起動

docker run --privileged -d -p 80:80 -v /root/htdocs/:/var/www/html/ --name httpd centos/httpd /sbin/init

 

Docokerは常にコンテナが消える要因があるので外部にデータを保存する。

 

コンテナの起動方法は非常に曖昧のような気がする、とりあえず上記内容であれば正常に動作はするが、このような記事もある。がしかし、どのオプションが最低限必要なのか?エラーが発生しないので現在調査中である。しかし、大体の使い方が分かれば次へ進めることができるのでDockerの記事を随時更新することとします。

コマンドでの管理は非常に面倒なので流石にGUIでの管理がいいのかもしれない。

1. Rancher(WEBベース)

2. Portainer(WEBベース)

3. kitematic(Mac、Windows用 Electronベース)

 

Dockerカテゴリの最新記事