システム管理者であり、複数のDockerホストを管理している場合は、各Dockerホストに接続し、コマンドを実行してDockerを管理する必要があります。これは時間のかかるプロセスになる可能性があります。ここでDockerデーモンが登場します。 Dockerデーモンを使用すると、TCPを介してリモートのDockerホストに接続できます。このようにして、各Dockerホストに個別にログインしなくても、ローカルシステムから複数のDockerホストを管理できます。
この投稿では、TCPを介してDockerホストを管理するようにDockerデーモンを構成する方法を紹介します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu20.04サーバー
- 仮想プライベートサーバーで設定されたルートパスワード
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–DockerCEをインストールする
まず、次のコマンドを使用して、必要なすべての依存関係をインストールします。
apt-get install git apt-transport-https ca-certificates curl software-properties-common -y
次に、次のコマンドを使用してDockerGPGキーを追加します。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add –
次に、次のコマンドを使用してDockerリポジトリを追加します。
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
リポジトリが追加されたら、次のコマンドを使用してDockerとDockercomposeをインストールします。
apt-get install docker-ce docker-compose -y
インストールが完了したら、次のコマンドを使用してDockerのバージョンを確認します。
docker --version
次の出力が表示されます。
Docker version 20.10.5, build 55c4c88
ステップ3–Dockerデーモンを構成する
まず、Dockerデーモン構成ファイルを保存するディレクトリを作成する必要があります。次のコマンドで作成できます:
mkdir -p /etc/systemd/system/docker.service.d
次に、デーモンオプションを保存するための新しいファイルを作成します。
nano /etc/systemd/system/docker.service.d/options.conf
次の行を追加します:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375
ファイルを保存して閉じてから、systemdデーモンをリロードして変更を適用します。
systemctl daemon-reload
次に、Dockerサービスを再起動して、変更を適用します。
systemctl restart docker
この時点で、Dockerデーモンが構成され、ポート2375でリッスンしています。次のコマンドで確認できます。
ps aux | grep dockerd
次の出力が得られるはずです:
root 48453 1.2 2.4 1005080 98520 ? Ssl 00:58 0:00 /usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375 root 48775 0.0 0.0 12108 992 pts/0 S+ 00:58 0:00 grep --color=auto dockerd
ステップ4–Dockerデーモンに接続するようにローカルシステムを構成する
開始する前に、DockerとDockercomposeがローカルシステムにインストールされていることを確認してください。次に、リモートDockerホスト上のDockerデーモンに接続するようにローカルシステムを構成する必要があります。
単一のワンライナーを使用して、Dockerデーモンに直接接続し、リモートのDockerホストでコマンドを実行できます。 DOCKER_HOST変数を使用して、Dockerデーモンアドレスを定義できます。
たとえば、次のコマンドを実行して、リモートDockerホストでdockerinfoコマンドを実行します。
DOCKER_HOST=tcp://remote-docker-host-ip:2375 docker info
または
docker -H tcp://remote-docker-host-ip:2375 docker info
dockerinfoコマンドの出力は次のようになります。
Containers: 2 Images: 3 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true Execution Driver: Kernel Version: 4.18.0-193.6.3.el8_2.x86_64 Operating System: CentOS Linux 8 (Core) CPUs: 2 Total Memory: 3.846 GiB Name: centos8 ID: S56P:VPIW:CMGZ:GAFN:YZNG:22CE:OBY3:SKEW:JAMT:DLD4:FG5K:QXYR Http Proxy: Https Proxy: No Proxy: Labels:
以下に示すように、リモートホストでdocker-composeコマンドを実行することもできます。
docker-compose -H tcp://remote-docker-host-ip:2375 --version
.bashrcファイルでDOCKER_HOST変数を設定することもできます。そのため、dockerまたはdocker-composeコマンドを実行するたびに指定する必要はありません。
次のコマンドで設定できます:
echo "export DOCKER_HOST=tcp://remote-docker-host-ip:2375" >> ~/.bashrc
次に、次のコマンドを使用して構成をアクティブ化します。
source ~/.bashrc
これで、dockerおよびdocker-composeコマンドをローカルで実行するだけで、リモートのDockerホストを管理できます。
たとえば、次のコマンドを実行して、リモートホスト上のDockerのバージョンを確認します。
docker --version
結論
上記のガイドでは、TCPを介してリモートDockerホストに接続し、ローカルシステムから管理するようにDockerデーモンを構成する方法を学習しました。これにより、Dockerの日常のタスクがはるかに簡単になることを願っています。今すぐAtlantic.NetのVPSでDockerデーモンの使用を開始してください!