小编tu-*_*duh的帖子

docker-compose 可以在具有离散端口的服务之间共享 ip 吗?

我们目前有使用 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 地址用于不同的容器?

docker docker-compose docker-networking

6
推荐指数
1
解决办法
3420
查看次数

使用perl DB_File创建文件时如何指定BerkeleyDB的版本?

我们似乎在我们的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在创建数据库时创建特定版本?

php perl berkeley-db

4
推荐指数
1
解决办法
303
查看次数

使用 samba 恢复上传

如果出现网络中断,我一直在使用 smbget 命令来恢复下载......例如

smbget -r smb://mysambaserver/path/to/file
Run Code Online (Sandbox Code Playgroud)

是否有“上传”文件的等价物?

" smbclient get" 和 " smbcllient put" 似乎都没有恢复选项。我查过谷歌,但“smb put resume”似乎只是为了列出上传简历的人!

谢谢。

upload resume samba

1
推荐指数
1
解决办法
1969
查看次数