普段、サーバ構築の練習にはEC2を利用しています。
しかし、コンソール画面にログインするのが億劫になってきました。
そこで、ローカルで手軽にサーバ構築できないかと調べました。
結果、Mac + Docker + CentOSでなんとかなりそうなので、
その手順を自分用にまとめます。
#Dockerインストール
まずはDockerをインストール。
https://docs.docker.com/docker-for-mac/install/
次にDocker Hubのアカウントを作成します。
https://hub.docker.com/
Dockerアプリを起動し、
先ほど作成したアカウントでログインしておきます。
あとはターミナルから操作していきます。
#イメージをプル
以下のコマンドでCentOS8のイメージを取得します。
docker pull centos:centos8
イメージが取得できたことを確認します。
docker images
#コンテナを生成 + 起動
以下のコマンドでCentOS8のコンテナ(hogemoge)を生成し、起動します。
docker run --detach --name hogemoge --privileged --publish=8080:80 centos:centos8 /sbin/init
上記設定では、ホストの8080番ポートをコンテナ内の80番ポートに転送しています。
例えば、コンテナ内でApacheをインストールした場合、ブラウザで次のようにアクセスすれば、コンテナ内のApacheに繋がります。
http://localhost:8080
#コンテナにログイン
以下のコマンドでコンテナ(hogemoge)にログインします。
docker exec -it hogemoge bash
これで、Dockerを用いてサーバ構築の練習ができるようになりました。
#その他コンテナ操作
コンテナからログアウトする時は以下のコマンド。
exit
起動中のコンテナ一覧
docker ps
全てのコンテナ一覧
docker ps -a
コンテナの停止
docker stop hogemoge
コンテナの起動
docker start hogemoge
ちなみに、CentOS8ではyumコマンドではなくdnfコマンドを利用するみたいです。
また、自身でイメージを作成し、Docker Hubにプッシュしておくことで、いつでもその時の環境を再現することができるようなので、色んなサーバのテンプレートを用意するのも面白そうだなと思っています。