docker-desktop-for-windowsからpullしてリモートサーバのdocker-registryのイメージファイルを取得する
docker-desktop-for-windowsからpullしてリモートサーバのdocker-registryのイメージファイルを取得する
ローカル環境ではdocker-desktop-for-windwosで開発しています。ポートフォワーディングしてリモートにあるregistryからイメージを取得しようとしていたのですがエラーがでてきてしまったので解決方法を書き残しておきます。ポイントは「ローカルホストをLISTENさせる」事でした。docker-registryをまだ作成した事がない方はこちらからどうぞ。イメージは下の通りです。
レジストリ用コンテナを作成
まずはリモートサーバーの中にレジストリ用コンテナを作成します。docker-composeで最小限の設定で作成します。
version: '3'
services:
registry:
image: registry:latest
container_name: registry
privileged: true
restart: always
expose:
- "5000"
ports:
- "127.0.0.1:5000:5000"
これでリモートサーバにの「127.0.0.1:5000」にアクセスしたらレジストリのイメージにアクセスできるようになます。出来たらイメージをpushしておきましょう。
ローカルフォワードの設定
「.ssh\config」で下記を記載してあげます。
Host remote
HostName remote.co.jp
User hoge
IdentityFile C:\Users\hoge\fuga\id_rsa
ForwardAgent yes
LocalForward 192.168.xxx.xxx:5000 127.0.0.1:5000
リモートサーバへのSSHの設定です。「LocalForward」の部分の「192.168.xxx.xxx」は自分のPCのIPアドレスを設定してあげてください。これをしないと「(docker-desktopが動いている)hyper-v内のVMからローカルのPCにアクセスできないためです。ここが「localhost:5000」などだとうまくいかず下記のようなエラーが発生します。
Error response from daemon: Get http://127.0.0.1:5000/v2/: dial tcp 127.0.0.1:5000: connect: connection refused
ここら辺は下記のサイトが詳しく説明して下さっています。
いますぐ実践! Linux システム管理
ここまで出来たら「remote」サーバにSSHをしている状態で下記のコマンドを打ち込めばイメージファイルを取得できます。
docker pull 192.168.xxx.xxx:5000/image_name:tag
ディスカッション
コメント一覧
まだ、コメントがありません