我们目前有使用 supervisord 构建复杂构建的 docker 容器,以便我们可以将服务组合在一起。例如,nginx 和 ssh。
我正在尝试使用由共享卷链接的更多服务驱动隔离来重建这些。但是,如果不将 IP 映射到主机,即使端口可能是离散的,我似乎也找不到允许共享 IP 地址的方法。
我想要做的是这样的:
version: '2'
services:
web:
image: nginx
volumes:
- /data/web:/var/www
networks:
public:
ipv4_address: 10.0.0.1
ports:
- "10.0.0.1:80:80"
ssh:
image: alpine-sshd
volumes:
- /data/web:/var/www
networks:
public:
ipv4_address: 10.0.0.1
ports:
- "10.0.0.1:22:22"
networks:
public:
external: true
Run Code Online (Sandbox Code Playgroud)
...public预定义的 docker macvlan 网络在哪里。
当我尝试这个时,我收到错误:
ERROR: for ssh Cannot start service ssh: Address already in use
Run Code Online (Sandbox Code Playgroud)
我知道另一个解决方案是引入第三个服务作为代理。但是,我认为这将是一个足够简单的案例,不需要它。
是否可以将 docker-compose/docker-networking 配置为通过端口路由以允许相同的 IP 地址用于不同的容器?
我们似乎在我们的perl脚本和PHP脚本之间遇到了BerkeleyDB中的版本不兼容问题.我们的perl脚本生成BDB,我们的php脚本只是读取它们.
我们的perl脚本使用DB_File来创建BDB文件:
use DB_File;
$DBFILE="output.db";
tie(%db, "DB_File", $DBFILE, O_RDWR | O_CREAT, 0644)
or warning("Could not open db file '$DBFILE'");
Run Code Online (Sandbox Code Playgroud)
这之前创建了一个类型的文件:
$ file output.db
output.db: Berkeley DB (Hash, version 9, native byte-order)
Run Code Online (Sandbox Code Playgroud)
但是,在升级sys-libs/db和DB_File之后,现在创建一个类型为的文件:
$ file output.db
output.db: Berkeley DB (Hash, version 10, native byte-order)
Run Code Online (Sandbox Code Playgroud)
在系统的另一个系统中,我们有一个PHP脚本.升级发生时,我们的PHP代码(基于dba_open())开始抱怨版本:
Notice: dba_open(): output.db: unsupported hash version: 10 in dbread.php on line 16
Run Code Online (Sandbox Code Playgroud)
我尝试升级PHP,但似乎还没有支持版本10.
有没有办法告诉perl的DB_File在创建数据库时创建特定版本?
如果出现网络中断,我一直在使用 smbget 命令来恢复下载......例如
smbget -r smb://mysambaserver/path/to/file
Run Code Online (Sandbox Code Playgroud)
是否有“上传”文件的等价物?
" smbclient get" 和 " smbcllient put" 似乎都没有恢复选项。我查过谷歌,但“smb put resume”似乎只是为了列出上传简历的人!
谢谢。