AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-145823

Tom Klino's questions

Martin Hope
Tom Klino
Asked: 2017-12-26 12:10:37 +0800 CST

来自主机的 Docker 服务发现(或 dns 解析)

  • 1

我有一个配方,它使用我为我的应用程序制作的特定 mysql 图像设置一个 docker 实例。作为该配方的一部分,我希望它在容器运行 mysql 后,从备份中恢复数据的过程将自动开始。

为此,我需要拥有容器的 IP(或从 DNS 获取它的方法)。但是,由于我从配方中自动启动容器,因此我无法知道该 IP 将是什么,因此我试图让 docker 为其设置一个稍后可以解析的主机名。

奇怪的是,如果我将一个容器链接到另一个容器,我将能够从链接到它的容器中解析另一个容器的主机。但是,我发现无法从主机解析该主机名。

这是我用来调出容器的食谱(厨师)的一部分:

docker_container 'imhere-mysql' do
  hostname mysqlHost
  repo 'lutraman/imhere'
  tag 'mysql'
  env ["MYSQL_ROOT_PASSWORD=#{mysql_password}"]
  volumes [ '/var/imhere/mysql:/var/lib/mysql' ]
  action :run
end

我想用来恢复数据的命令是这样的(根据配方构建):

"gunzip -c #{parent_data_dir}/#{db_restore_filename} | mysql -h #{mysqlHost} -u root -p'#{mysql_password}'"

仅从主机运行,mysqlHost(在手头的情况下 - imhere-mysql)中的名称不会从主机解析。

本文底部有一条说明,说应该有一个 docker dns 服务器在 127.0.0.11 上运行 - 但我担心这是容器内部的。

我希望我能够做的是查询 docker(在理想情况下,作为 DNS,但任何方式都可以)以获取名为“imhere-mysql”的容器的 ip。无论主机操作系统如何,最好的方法是什么?

docker
  • 2 个回答
  • 358 Views
Martin Hope
Tom Klino
Asked: 2017-02-14 03:53:29 +0800 CST

keepalived 不绑定 VIP

  • 1

我试图让keepalived在2个debian jessie VM之间工作。

我已定义主机将 VIP 地址绑定到 172.128.28.6,如下所示:

global_defs {
        lvs_id tom_lvs
}

vrrp_instace tom_lvs {
        state MASTER
        interface eth1
    virtual_router_id 1
    priority 100
        authentication {
                auth_type PASS
                auth_pass 1234
        }

    advert_int 1
    virtual_ipaddress {
        172.28.128.6
    }

        virtual_server 172.28.128.6 3000 {
                delay_loop 10
                lb_algo wlc
                lb_kind DR
                protocol TCP
                persistence_timeout 1800
                sorry_server 172.28.128.3 3000
                real_server 172.28.128.4 3000 {
                        weight 1
                        HTTP_GET {
                                url {
                                        path /index.html
                                }
                        }
                }
        }
}

但是,当我运行时,ip addr我没有看到附加到 eth3 的第二个 IP:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f6:86:bf brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fef6:86bf/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:05:a5:a1 brd ff:ff:ff:ff:ff:ff
    inet 172.28.128.4/24 brd 172.28.128.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe05:a5a1/64 scope link 
       valid_lft forever preferred_lft forever

我显然在这里遗漏了一些东西,但我已经在这里呆了 2 天了,但仍然没有找到它。

如果完全相关,机器正在使用 vagrant 和 virtual-box 运行,两者都定义为从 dhcp 获取它们的地址,它们的 IP 是 /24 子网上的 172.128.28.4 和 172.128.28.3。

这是输出grep Keepalived /var/log/messages:

Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Registering Kernel netlink reflector
Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Registering Kernel netlink command channel
Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Registering gratuitous ARP shared channel
Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Opening file '/etc/keepalived/keepalived.conf'.
Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Configuration is using : 58175 Bytes
Feb 13 11:39:51 jessie Keepalived_vrrp[1890]: Using LinkWatch kernel netlink reflector...
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Registering Kernel netlink reflector
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Registering Kernel netlink command channel
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Opening file '/etc/keepalived/keepalived.conf'.
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Configuration is using : 12031 Bytes
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Using LinkWatch kernel netlink reflector...
Feb 13 11:39:51 jessie Keepalived_healthcheckers[1889]: Activating healthchecker for service [172.28.128.4]:3000
linux debian keepalived
  • 1 个回答
  • 2868 Views
Martin Hope
Tom Klino
Asked: 2016-08-15 10:12:52 +0800 CST

使用准备好的数据库方案创建 docker mysql 容器

  • 32

我想在 mysql 上创建一个 docker 镜像,该镜像已经包含我的应用程序所需的方案。

我尝试向 Dockerfile 添加行,将我的方案作为 sql 文件导入。我是这样做的(我的 Dockerfile):

FROM mysql

ENV MYSQL_ROOT_PASSWORD="bagabu"
ENV MYSQL_DATABASE="imhere"

ADD imhere.sql /tmp/imhere.sql

RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql"

据我了解,这不起作用,因为 mysql docker 映像不包含 mysql 客户端(最佳实践状态“不要添加东西只是因为它们会很好”)(我错了吗?)

什么可能是这样做的好方法?我有一些想法,但它们似乎都是混乱的解决方法。

  1. 安装 mysql 客户端,做我必须做的事情,然后删除/清除它。
  2. 将 mysql 客户端二进制文件复制到映像中,做我必须做的,然后将其删除。
  3. 在另一个 sql server 中创建模式并直接复制 db 文件本身(这看起来很混乱,对我来说听起来像是一个受污染的问题池)

有什么建议么?希望以一种以后易于维护的方式,并且可能也符合最佳实践?

mysql docker
  • 7 个回答
  • 116849 Views
Martin Hope
Tom Klino
Asked: 2012-11-17 09:24:56 +0800 CST

无法将软电话注册到asterisk11

  • 0

我有一个运行 Fedora17 的虚拟机(在 oracle vbox 上)。我已经从源代码中安装了 asterisk 11。我严格按照 wiki 进行安装 ( https://wiki.asterisk.org/wiki/display/AST/Creating+SIP+Accounts )。

运行fedora的VM机器上的ip是192.168.1.7

我可以从位于 192.168.1.2 的主机 (Ubuntu 12.04) ping 通它

我尝试使用以下设置注册 ekiga:

用户:[email protected]。密码:verysecretpassword 注册:192.168.1.7 但我收到错误“传输失败”。

此外,在尝试注册时,我以详细级别 3 和调试级别 4 登录到星号 CLI,但没有任何显示。

一些更相关的数据:

我已将以下代码添加到我的 sip.conf.sample 文件的末尾:

[demo-alice]
type=friend
host=dynamic
secret=verysecretpassword
context=users
deny=0.0.0.0/0
permit=192.168.1.0/255.255.255.0

[demo-bob]
type=friend
host=dynamic
secret=othersecretpassword
context=users
deny=0.0.0.0/0
permit=192.168.1.0/255.255.255.0

更改 sip.conf.sample 文件后,我创建了一个副本并将其命名为 sip.conf。然后我登录到星号 CLI 并输入sip reload.

然后,我尝试从位于 192.168.1.2 的主机注册 ekiga 客户端,但它不起作用,并且在详细模式级别 3 中星号 CLI 上没有任何内容。

顺便说一句,如果我的问题缺少信息,请不要关闭它。评论您需要了解的内容,我会将其编辑到问题中。谢谢。

virtualization
  • 1 个回答
  • 520 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve