DockerコンテナにSSH接続する方法とコード例


  1. DockerコンテナにSSHサーバーをインストールする方法:

まず、DockerイメージにSSHサーバーをインストールする必要があります。以下は、UbuntuベースのDockerコンテナにOpenSSHサーバーをインストールする例です。

Dockerfile:
FROM ubuntu
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
CMD ["/usr/sbin/sshd", "-D"]

このDockerイメージをビルドし、コンテナを実行します。

$ docker build -t ssh-container .
$ docker run -d -p 2222:22 --name my-ssh-container ssh-container

SSH接続を行うには、ホストマシンからポート2222でコンテナに接続します。

$ ssh -p 2222 username@localhost
  1. DockerコンテナにSSHキーをマウントする方法:

SSHキーを使用してコンテナに接続する方法もあります。まず、ホストマシンのSSHキーペアを生成します。

$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

次に、コンテナを実行する際にホストマシンのSSHキーをマウントします。

$ docker run -d -p 2222:22 -v ~/.ssh/id_rsa.pub:/root/.ssh/authorized_keys --name my-ssh-container ubuntu

SSH接続を行うには、ホストマシンからポート2222でコンテナに接続します。

$ ssh -p 2222 username@localhost
  1. Dockerコンテナにexecコマンドを使用して接続する方法:

DockerコンテナにSSHサーバーをインストールせずに、docker execコマンドを使用してコンテナに接続する方法もあります。

まず、コンテナを実行します。

$ docker run -it --name my-container ubuntu

次に、docker execコマンドを使用してコンテナに接続します。

$ docker exec -it my-container /bin/bash

これにより、コンテナ内のシェルに直接アクセスできます。

これらはいくつかの一般的な方法ですが、SSH接続の設定や要件によって異なる場合があります。詳細な情報については、Docker公式ドキュメントを参照してください。

以上が、DockerコンテナにSSH接続する方法とコード例の説明です。