如果我使用标签/标签创建容器
docker run --name some_container -d me/my_image
更新图像
docker pull me/my_image
并重新启动容器
docker restart some_container
新容器使用哪个版本?
indocker inspect
.Image
给出特定图像的 id,.Config.Image
给出标签。
如果我使用标签/标签创建容器
docker run --name some_container -d me/my_image
更新图像
docker pull me/my_image
并重新启动容器
docker restart some_container
新容器使用哪个版本?
indocker inspect
.Image
给出特定图像的 id,.Config.Image
给出标签。
设置
我正在尝试进行设置,允许我直接从 LAN 连接到 docker 容器,而无需将单个端口绑定到 docker 主机 IP 地址。
我已经打开了 IP 转发sysctl -w net.ipv4.ip_forward=1
。
症状
我可以通过 SSH 连接并使用 SFTP 传输非常小的文件。但是,如果我尝试发送大于 30K 左右的文件,传输就会挂起。我需要杀sftp
了才能阻止它。
编辑:文件大小限制似乎有所不同。现在它在 50-100KB 之间。它可以通过和的不同变体进一步-B
改变-l
-R
sftp
小文件达到 100% 并停滞不前,大文件读得更少。速度慢慢变为零,时间读数- stalled -
sftp> put testfile35k
Uploading testfile35k to /home/user/testfile35k
testfile35k 100% 35KB 0.4KB/s 01:29
(killall -9 sftp)
sftp> put testfile
Uploading testfile to /home/user/testfile
testfile 20% 2080KB 0.0KB/s - stalled -
15 分钟后,我得到Write failed: connection timed out
并最终Write failed: Broken pipe
如果我没有尝试从 to 转发,eth0
而是docker0
使用 docker 的端口绑定 ( -p
) SFTP 工作正常。
网络设置:
SSH Server:
[root@b6c9d8f9d30d Python-3.4.3]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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
112: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:0c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.12/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:c/64 scope link
valid_lft forever preferred_lft forever
Docker/"router":
[root@docker ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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 qlen 1000
link/ether 52:54:00:21:68:9b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.193/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.0.121/24 brd 192.168.0.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe21:689b/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
inet 172.17.42.1/16 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::5484:7aff:fefe:9799/64 scope link
valid_lft forever preferred_lft forever
SSH Client:
[root@test ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:99:0b:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.201/24 brd 192.168.0.255 scope global eth1
inet6 fe80::5054:ff:fe99:b64/64 scope link
valid_lft forever preferred_lft forever
Docker 主机 iptables: EDIT2: Flushed all iptables rules and NAT without any effect
[root@docker ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sat Sep 12 15:09:53 2015
*nat
:PREROUTING ACCEPT [5:488]
:INPUT ACCEPT [2:284]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [3:204]
:DOCKER - [0:0]
COMMIT
# Completed on Sat Sep 12 15:09:53 2015
# Generated by iptables-save v1.4.21 on Sat Sep 12 15:09:53 2015
*filter
:INPUT ACCEPT [513:54486]
:FORWARD ACCEPT [280:161095]
:OUTPUT ACCEPT [325:35618]
:DOCKER - [0:0]
COMMIT
# Completed on Sat Sep 12 15:09:53 2015
我知道容器通常不应该运行sshd
。这是一个远程 python 开发主机,SSH 用于运行远程解释器。
我们在一个站点上有一个有效的 exim 设置,用户可以在那里发送和接收邮件。我们正在尝试设置服务器以使用电子邮件将一些警告和错误发送到本地网络之外的地址。
问题是:
发送邮件的程序使用运行它的用户名和服务器的本地主机名发送邮件。这会导致邮件具有以下格式的发件人:[email protected]。Exim 将这些邮件发送到 ISP 的 SMTP 服务器,该服务器会拒绝这些邮件,因为它们有一个非法或无法验证的发件人(内部地址)。
我想我应该配置 exim 在以下情况下重写发件人:
我尝试在 exim 配置中设置某种重写,但没有设法让它工作。我会展示我尝试过的内容,但我在上次访问该网站时没时间,不得不恢复到原始版本,丢失了我尝试过的所有更改。
我已经将 apache 设置为运行 jenkins-CI 的 tomcat 的反向代理。我可以从外部正常访问该站点,除非当我登录到 jenkins 时,它会重定向到我的 lan-hostname,当然它在我的网络之外会失败。之后我可以在浏览器中手动输入原始地址,它会正常工作,直到我必须再次登录。
我想知道这是否是 jenkins 或我的 apache/tomcat 代理设置中的问题。
Jenkins 还在管理页面上报告我的代理设置不正确,但没有再说了。
Apache 虚拟主机配置:
<VirtualHost *:80>
ServerName jenkins.outsideaddress
ServerAlias ci.outsideaddress jenkins.insideaddress ci.insideaddress
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
还加载了代理和 proxy_http 模块(根据apachectl -M
)
我正在 linux 服务器上安装 tomcat,并希望它可以作为服务使用。我找到了两种不同的方法来实现这一目标。
第一个是将 daemon.sh 从 $CATALINA_HOME/bin 复制到 /etc/init.d,另一个我看到的是创建一个简单的初始化脚本,类 $CATALINA_HOME/bin/startup.sh 等。 Startup.sh 调用 catalina.sh。
daemon.sh 和 startup.sh 的内容看起来非常相似(至少对于 env 变量,以及类似的东西)。Daemon.sh 最后调用jsvc
。Catalina.sh 调用 java.
将 tomcat 设置为服务时,使用这两者之间的(实际)区别是什么?
我有一个 django 项目,我正在从开发服务器转移到 apache。我已经设法通过 mod_wsgi 获得它的服务器,但它作为 apache 运行。Mod_wsgi 文档说,如果 apache 以 root 身份运行,则可以以不同的用户身份运行 mod_wsgi 进程。
Q1:是否可以在不以 root 身份运行 apache 的情况下以不同的用户身份运行 mod_wsgi?
Q2:如果以上问题的答案是否定的,我如何让 apache 以 root 身份运行。我在 CentOS 6 机器上使用提供的存储库提供的 httpd 包。