k.sato
2023年10月11日 16時18分
佐藤と申します。
お世話になっております。
python_app.confに「set_network host」することでアドレスが分からないときでも
vsftpd を起動してFTPサーバーと接続することは確認できました。
この状態でsshコマンドにて「ssh root@10.88.0.1 reboot
」としたのですがホストに接続できません。
それで「10.88.0.1」の部分を 「[armadiilo]ip addr
」で確認したホストのIPアドレスを入れたところ接続できました。
これはこの方法でよいでしょうか?
またコンテナ内のpythonスクリプトでこのホストのIPアドレスはどうやって取得すればよいのでしょうか?
import socket # ホスト名を取得、表示 host = socket.gethostname() print(host) # ipアドレスを取得、表示 ip = socket.gethostbyname(host) print(ip)
上記を試してみたのですが取得できません。
以上、よろしくお願い致します。
コメント
at_dominique.m…
佐藤さん
マルティネです。
> 「ssh root@host.containers.internal reboot
」の形で
> コンテナからArmadilloが再起動できたのですがこの方法で問題ないでしょうか?
host.containers.internal は podman がコンテナの起動時に生成しますので、コンテナ起動時に使えます。
ただし、デフォルトのネットワークでコンテナの IP が変わることがないですが、set_network host の場合で DHCP で IP を自動取得すると IP が変わることがあります(armadillo を動かさない限りは基本的に変わらない物ですが、サーバーの都合で可能性としてありえます)
その場合にコンテナの /etc/hosts が更新されませんので、set_network host の場合は localhost かそのどちらかの IP (127.0.0.1 / ::1 )を使っていただいた方が丈夫な構造になります。
host ネットワークの場合は localhost でホストの sshd に必ず接続できますので、「ssh localhost reboot」でも再起動できるはずです。
よろしくお願いします。
k.sato
マルティネ様
佐藤です。
> host.containers.internal は podman がコンテナの起動時に生成しますので、コンテナ起動時に使えます。
>
> ただし、デフォルトのネットワークでコンテナの IP が変わることがないですが、set_network host の場合で DHCP で IP を自動取得すると IP が変わることがあります(armadillo を動かさない限りは基本的に変わらない物ですが、サーバーの都合で可能性としてありえます)
>
> その場合にコンテナの /etc/hosts が更新されませんので、set_network host の場合は localhost かそのどちらかの IP (127.0.0.1 / ::1 )を使っていただいた方が丈夫な構造になります。
> host ネットワークの場合は localhost でホストの sshd に必ず接続できますので、「ssh localhost reboot」でも再起動できるはずです。
詳しい説明ありがとうございます。
「ssh localhost reboot
」で再起動できることを確認しました。
ありがとうございました。
k.sato
2023年10月12日 9時50分
佐藤です。
連投で申し訳ありません。
「
cat /etc/hosts
」でホストのIPアドレスが確認できました。「
ssh root@host.containers.internal reboot
」の形でコンテナからArmadilloが再起動できたのですがこの方法で問題ないでしょうか?
よろしくお願い致します。