docker desktop@macで、centos8の仮想環境を構築してみた
今度はdockerで、仮想環境を構築してみた。
dockerは元々ubuntu(linux)上で動作するソフトなので、以前はwin/macに仮想環境ubuntu(linux)を構築して、その上にdockerを走らせていたが、現在ではwin/mac上で動作するdocker desktopがリリースされたので、それを使う。便利になったもんだ〜。
※以前は、Docker for Mac/Windowsと呼ばれていたらしい。
1, macにdocker_desktopをインストール
1 2 |
docker --version Docker version 19.03.8, build afacb8b |
2, docker hubからcentos8をpullしてくる
1 2 3 4 5 6 7 |
mkdir docker && cd docker docker pull centos:centos8 # ちゃんとダウンロード出来たか確認する(docker images) docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos centos8 470671670cac 4 months ago 237MB |
3, イメージからコンテナを生成して、実行する(hello,world)
1 2 3 4 5 6 7 8 |
# イメージからコンテナを生成して、実行する(hello,world) docker run centos:centos8 echo "hello,world" hello,world # 実行完了したコンテナを表示 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f1fc3fc151fd centos:centos8 "echo hello,world" 6 seconds ago Exited (0) 6 seconds ago intelligent_allen |
virturlbox + vagrantとは違って、コンテナイメージ。
awsみたいなマイクロサービス的な感じだ。
4, 実行中のコンテナを、一時停止・再開・終了してみる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# freeコマンドは、空きメモリを表示する # -dオプションでバックグラウンド実行 docker run -d centos:centos8 free -s 3 # 実行中のdockerコンテナを表示 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ebdbd129ceae centos:centos8 "free -s 3" 25 seconds ago Up 24 seconds awesome_chatterjee #docker logs コンテナID(先頭一致なので3文字くらいでもOK)で実行ログが表示される docker logs ebdbd129ceae #コンテナ実行の一時停止(killでもstopでもOK) docker kill ebdbd129ceae #コンテナ実行の再開 docker start ebdbd129ceae #コンテナの削除(stopした状態で行う) docker rm ebdbd129ceae |
5, Webサーバを立ち上げて、ブラウザで表示する。
カレントディレクトリにDockerfile(dockerイメージ作成手順書)とindex.htmlを生成して、dockerイメージを生成する。
※dockerイメージは読み取り専用なので、修正したい場合は新しいdockerイメージを作る。Dockerfileは、そのためのdockerイメージ作成手順書
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 元となるdockerイメージ FROM centos:centos8 # 作成者 MAINTAINER Test Taro # RUN - イメージ作成時(build)に実行される(apacheインストール) RUN yum install -y httpd # CMD - コンテナ実行時(run)に実行される(ドキュメントルートにindex.htmlコピー) ADD ./index.html /var/www/html/ # port80開放 EXPOSE 80 # コンテナ実行時に、apache起動 CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"] |
Dockerfileファイルの設定に従って、dockerイメージ(test/httpd)を生成して、コンテナ実行する
1 2 3 4 5 6 7 8 9 10 11 12 |
# dockerイメージ作成(build) 最後のドットを忘れずに! docker build -t test/httpd . # dockerイメージが生成された事を確認する docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/httpd latest c828b8068a29 43 seconds ago 279MB centos centos8 470671670cac 4 months ago 237MB centos latest 470671670cac 4 months ago 237MB # コンテナ生成する。-p 8080:80でポート変換する docker run -p 8080:80 -d test/httpd |
http://localhost:8080 でindex.htmlの内容が表示されればOK!
カレントディレクトリのindex.htmlの内容を変更しても、dockerイメージは変更されないのでそのまま!