目次
前提条件
- MacからLinuxサーバーにSSH接続できること
- Dockerコンテナ が Linuxサーバーで動作していること
Linuxサーバーの確認
. Dockerコンテナが起動しているか確認
MacからLinuxサーバーにSSH接続する:例
ssh -i /任意/.ssh/filename.pem username@linux-server-ip -v
次に、docker ps
を実行してコンテナのポート設定を確認:
docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aaa3ee08cbbb test-web "flask run --debug" 45 minutes ago Up 45 minutes 0.0.0.0:8001->5000/tcp, [::]:8001->5000/tcp test-web-1
PORTSを確認、今回の場合は0.0.0.0:8001->5000/tcp
の設定の場合を例とします。ポート番号は任意です。
Linuxサーバーの 8001
番ポートが開いているか確認
netstat -tulnp | grep 8001
または
ss -tulnp | grep 8001
出力例:
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 411111/docker-proxy
tcp6 0 0 :::8001 :::* LISTEN 422222/docker-proxy
LISTEN
となっていればOKです。
LinuxサーバーのSSH接続を終了する
exit
Mac から Linux サーバーの localhost にアクセスする
SSHトンネルを使う方法
Mac側でSSHポートフォワーディングを設定し、Linuxサーバーの localhost:8001
をMacの localhost:8001
に転送:
ssh -i /任意/.ssh/filename.pem -L [ローカルポート]:[リモートホスト]:[リモートポート] username@linux-server-ip -v
例)
ssh -i /任意/.ssh/filename.pem -L 8001:linux-server-ip:8001 username@linux-server-ip -v
コマンドの各オプション
オプション | 説明 |
---|---|
ssh | SSHコマンド |
-i /任意/.ssh/filename.pem | SSH接続時に使う秘密鍵 (.pem ファイル) を指定 |
-L 8001:linux-server-ip:8001 | ローカルポートフォワーディング(詳細は後述) |
username@linux-server-ip | 接続するLinuxサーバーのユーザー名とIPアドレス |
-v | 詳細なデバッグ情報を表示(接続時のログを確認するのに便利) |
-L 8001:linux-server-ip:8001
の意味 ローカルポートフォワーディング
項目 | 設定値 | 説明 |
---|---|---|
ローカルポート | 8001 | Macの localhost:8001 を使う |
リモートホスト | linux-server-ip | リモートのサーバー(LinuxサーバーのIP) |
リモートポート | 8001 | Linuxサーバーの 8001 番ポート |
動作の仕組み
- Mac上で
http://localhost:8001
にアクセスすると - SSH経由で Linuxサーバーの
8001
にリクエストが転送される - 結果、Mac側で Linuxサーバーの
8001
番ポート にアクセスしているのと同じ動作になる
確認方法 Macのブラウザで以下を開く:
http://localhost:8001

トラブルシューティング
SSHトンネルを使用する際、ファイアウォールの設定が原因で通信がブロックされる ことがあります。各OSごとにファイアウォールの状態を確認し、必要に応じてポートを開放してください。
参考
http://localhost:8001で表示した内容は、DockerのクイックスタートのレッスンをMacからSSH接続してLinuxサーバーで実施し、Macのブラウザで確認した例です。
Docker Documentation


Quickstart
Check out this tutorial on how to use Docker Compose from defining application dependencies to experimenting with commands.
Docker クイックスタート
https://docs.docker.com/compose/gettingstarted
コメント
コメント一覧 (1件)
[…] Ai0w.com XServerVPS:MacからSSHトンネルを使って、Linuxサーバー上のDockerコンテナにアクセスする手順 – Linuxサー… 前提条件 MacからLinuxサーバーにSSH接続できること Dockerコンテナ が Linu […]