2017-12-13 17 views
0

Dockerで始める。複数のドッカーコンテナを同じ画像からローカルに実行する。ローカルのDockerコンテナ間のSSH

docker run -it -p 52022:22 ubuntu 
docker run -it -p 52023:22 ubuntu 

openssh-serverとsetupキーを追加しました。どのようにそれらの間でssh(実験目的のために)?ホスト名を使用してsshに接続しようとしましたが、ホスト名を解決できませんでした。

答えて

2

警告ルートコンテナにsshをインストールすると、ルートマシンにホストマシンが潜在的にアクセスする可能性があります。

あなたはswarmを作成し、生成されたDNS名でそれらに話をすることができます。

FYIこの例では、ubuntuは何も実行していないので、コンテナを停止し、別のものを起動します。 httpdのようなコンテナを起動する必要があります

ここは私の犬の例です。 doggy/docker-compose.ymlファイルは次のようになります。

version: '3.0' 
services: 
    sparkey: 
    image: "httpd" 
    ports: 
    - "52022:22" 
    - "9002:80" 
    limey: 
    image: "httpd" 
    ports: 
    - "52023:22" 
    - "9003:80" 

まだ完了していない場合は、群を初期化します。

docker swarm init 

次に犬のフォルダです。

docker stack deploy --compose-file docker-compose.yml doggy 

次に、コンテナに入るときは、docker psのコンテナ名を取得します。

docker exec -it doggy_limey_1.7jm5muapfhekb11v2ei8gvnc9 bash 

複数のホストマシンが混在している場合は、マシンを見つけることができます。

docker service ps doggy 

生成されたDNS名またはswarmマネージャのIPを使用して、相手と話すことができます。

ping doggy_sparkey 
PING doggy_sparkey (10.0.0.4): 56 data bytes 
64 bytes from 10.0.0.4: seq=0 ttl=64 time=0.036 ms 
64 bytes from 10.0.0.4: seq=1 ttl=64 time=0.070 ms 

このコマンドでスタックを停止します。

docker stack rm doggy 
+1

sshデーモンサーバードッカーイメージがない場合。このチュートリアルのコマンドを実行してください。https://docs.docker.com/engine/examples/running_ssh_service/ – dskow

関連する問題