容器间通讯
如果需要两个运行中的容器之间传递数据,最方便的方法是通过 ssh / scp
或者 rsync
。
通过代理访问网络
如果服务器没有办法直接访问外部网络,需要在做任何与网络有关的命令前配置代理:
export http_proxy=<http-proxy>
export https_proxy=<http-proxy>
export no_proxy=openbayes-server-svc
然后主动的更新下 bayes
命令行工具:
bayes upgrade
创建私钥
bayes ssh create
会在 ~/.ssh
目录下创建一堆名为 openbayes / openbayes.pub
的私钥和公钥,并将 openbayes.pub
上传到 openbayes
的 key 列表中。
ssh 协议默认会访问 ~/.ssh/id_rsa / ~/.ssh/id_rsa.pub
,可以将以上生成的两个文件重命令,可以免去后续输入 -i ~/.ssh/openbayes
。
mv ~/.ssh/openbayes ~/.ssh/id_rsa
mv ~/.ssh/openbayes.pub ~/.ssh/id_rsa.pub
SSH 链接
首先登录目标容器,打开 Terminal 执行如下内容:
# 如果需要 代理才能访问外网
# export http_proxy=<http-proxy>
# export https_proxy=<http-proxy>
# export no_proxy=openbayes-server-svc
apt install iproute2 -y
ip a
可以得到如下结果:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0@if96: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
link/ether 2a:d7:3a:68:13:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.38.6.87/32 scope global eth0
valid_lft forever preferred_lft forever
可以看到该容器的内网 ip 为 10.38.6.87
,通过命令 ssh -i ~/.ssh/openbayes 10.38.6.87
就可以访问该容器了,同时这种方式也可以支持 rsync。