Dockerコンテナを作成時、Linux系OSだと以下の様にホスト名がランダムな文字列の様に表記されます。
[root@5ef592aa81dd /]#
この表記だとアクセス後に、どのサーバーにアクセスしていたのか時間が経つとわからなくなります。
また、「/etc/hostname」でホスト名を変更しても反映されません。
このホスト名をコンテナ作成時に設定する方法をまとめました。
Dockerコンテナインストール方法は以下の記事も参考にしてください。
「Docker」CentOSコンテナにホスト名を設定して作成する方法はオプション「-h」を使用
Dockerコンテナ作成時にホスト名を付与するには「-h」、もしくは「–hostname」を使用します。
以下は、「test」と言うホスト名を設定したCentOSのコンテナを作成するコマンドとなります。
$ docker run -itd --privileged -p 2222:22 --name test -h test -v test_vol:/test_centos7_vol centos:centos7 /sbin/init
コンテナのホスト名に「test」を設定するには、オプション「-h」を使用します。
そのほかのオプションは以下を参考にしてください。
- -it コンテナのプロセスにttyを割り当てる
- -d コンテナをバックグラウンドで実行
- –p ポート指定(ここではsshアクセスポートの変更)
- –privileged systemctlコマンドを使えるようにしたいのでこのオプションを追加
- –name 作成したコンテナに名前をつける
- -h コンテナのホスト名を指定
- -v ボリューム名を今回のコンテナに合わせてわかりやすく表記する
また、「–privileged」オプションを追加しないと、CentOSを使用する際に必要となる「systemctl」コマンドなどが利用できないので、このオプションは追加しておきましょう。
コンテナ作成後の確認
上記で、問題なくコンテナが起動したら、以下「docker ps」コマンドで確認をします。
~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 438caba42bce centos:centos7 "/sbin/init" 20 hours ago Up 20 hours 0.0.0.0:2222->22/tcp test
コンテナへアクセスし、ホスト名が設定されていることを確認
上記でコンテナが作成され、起動していることが確認できれば、実際に「docker exec」コマンドでコンテナにアクセスします。
~ $ docker exec -it test /bin/bash [root@test /]#
ホスト名が[root@test /]となり、設定した名前になっていれば成功です。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す