- 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
- 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
- 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接続する方法とコード例の説明です。