我有一个 bash 别名加载到 Docker 容器中,在/etc/bash.bashrc. 它用作命令行 PHP 脚本的快捷方式。这很方便,因为任何人都可以在登录容器后直接使用该别名,如下所示:
$ docker exec -it my-container bash
但是,我还希望能够在不登录的情况下在一次性命令中使用此别名,例如:
$ docker exec -it my-container my-alias
我尝试了不同的变体,例如在 以外的其他地方定义别名/etc/bash.bashrc,但我一直遇到这个错误:
rpc 错误:code = 2 desc = oci 运行时错误:exec 失败:exec:“my-alias”:在 $PATH 中找不到可执行文件
到目前为止,我在网上找到的其他建议并没有奏效。任何人?
我有詹金斯的码头工人形象。
jenkins 的主目录是:/var/jenkins_homewich 映射到/home/user
所以,我安装了映射到的 android-sdk:
/home/user/tools/android-sdk/
Run Code Online (Sandbox Code Playgroud)
当我将 Android 插件安装到 Jenkins 并制作其他东西时。
我开始构建并收到错误:
21:16:22 $ /var/jenkins_home/tools/android-sdk/tools/android list target
21:16:23 [android] Using Android SDK: /var/jenkins_home/tools/android-sdk
21:16:23 $ /var/jenkins_home/tools/android-sdk/platform-tools/adb start-server
21:16:26 * daemon not running. starting it now on port 5847 *
21:16:26 * daemon started successfully *
21:16:26 $ /var/jenkins_home/tools/android-sdk/platform-tools/adb start-server
21:16:26 [android] Starting Android emulator
21:16:26 $ /var/jenkins_home/tools/android-sdk/tools/emulator -engine classic -ports 5794,5795 -report-console tcp:5824,max=60 -avd hudson_ru_RU_160_1920x1280_android-25_armeabi-v7a -no-snapshot-load -no-snapshot-save -no-window -force-32bit
21:16:26 sh: 1: file: not found
21:16:26 …Run Code Online (Sandbox Code Playgroud) VirtualBox 在我的 Windows 10 机器上运行良好。对于另一个项目,我必须安装 Docker。完成这项工作后,我卸载了 Docker。现在我的 VirtualBox 虚拟机不再工作(某种 VT-X 问题?)。我检查了 BIOS 并启用了 VT-x 设置。
谁能建议为什么卸载 Docker 会导致这种情况,以及如何让 VirtualBox 再次工作。机器是E470 Thinkpad。
在一台有 IP 的机器上192.168.100.6,我可以运行一个 docker 容器并在容器内没有问题地执行 dns:
$ docker run --rm -it xenial-networking bash
root@255c2ffc38cb:/# dig registry.mynet
; <<>> DiG 9.10.3-P4-Ubuntu <<>> registry.mynet
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1540
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;registry.mynet. IN A
;; ANSWER SECTION:
registry.mynet. 0 IN A 192.168.100.16
;; Query time: …Run Code Online (Sandbox Code Playgroud) 当我将输出通过管道传输docker exec到另一个命令时,它似乎弄乱了我的终端的行结尾。
例如:
$ docker exec -it foo sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | jq
{
"a": "b",
"c": "d"
}
$
Run Code Online (Sandbox Code Playgroud)
但是,如果我立即在主机上的同一终端中运行相同的命令:
$ sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | jq
{
"a": "b",
"c": "d"
}
Run Code Online (Sandbox Code Playgroud)
...正如预期的那样。
如果我通过管道输出xxd,它似乎会引入一个 CR 字符以及 LF (0d0a,而不是 0a);它还弄乱了以下的输出xxd:
$ docker exec -i -t foo sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | xxd
00000000: 7b22 6122 3a22 6222 2c22 6322 3a22 6422 {"a":"b","c":"d"
00000010: 7d0d 0a
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过发出自己的声音来排除 docker \r\n,那就没问题:
$ printf "{\"a\":\"b\",\"c\":\"d\"}\r\n" …Run Code Online (Sandbox Code Playgroud) 我使用的是 Linux Mint 19,使用的是 Cinnamon 3.8.8
我有 Nvidia GT740 和 8GB RAM
我正在使用:
Docker版本18.06.1-ce,构建e68fc7a docker-machine版本0.14.0,构建89b8332 docker-compose版本1.21.2,构建a133471
我注意到我的启动速度非常慢
所以我跑了:
systemd-analyze blame
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
1min 27.764s docker.service
39.269s plymouth-quit-wait.service
24.180s dev-sdb2.device
20.645s nmbd.service
18.437s snapd.service
13.111s systemd-journal-flush.service
12.475s udisks2.service
12.446s NetworkManager.service
10.969s keyboard-setup.service
10.734s libvirtd.service
10.418s NetworkManager-wait-online.service
10.168s networkd-dispatcher.service
10.065s smbd.service
9.736s apparmor.service
..... etc
Run Code Online (Sandbox Code Playgroud)
正如你所看到的 docker.service 花费了大量时间,有人知道我该如何解决这个问题吗?
我有一台运行 IPv4 和 IPv6(双栈)的 Ubuntu 服务器 16.04 LTS。该服务器也在运行 Docker。但是,每当我尝试访问群中的容器时都会遇到问题,但只能通过 IPv6。这是我的步骤:
我创建了一个运行 gnuicron 网络服务器的简单应用程序:
def app(environ, start_response):
"""Simplest possible application object"""
data = b'Hello, World!\n'
status = '200 OK'
response_headers = [
('Content-type', 'text/plain'),
('Content-Length', str(len(data)))
]
start_response(status, response_headers)
return iter([data])
Run Code Online (Sandbox Code Playgroud)
我gunicorn -w 4 -b [::]:5678 myapp:app在我的服务器上运行它,并通过在我的网络中的双栈客户端上运行它来验证它是否有效:
$ curl --connect-timeout 15 http://[2001:db8:db0::5]:5678
Hello, World!
$ curl --connect-timeout 15 http://192.168.10.5:5678
Hello, World!
Run Code Online (Sandbox Code Playgroud)
我写了一个Dockerfile并运行它:
docker build -t docker_ipv6_test .
docker run --rm --init -p 5678:5678 docker_ipv6_test
Run Code Online (Sandbox Code Playgroud)
我运行与 about 相同的验证,它按预期工作。然后我写了一个docker-compose.yml: …
在 Docker 中,当将空卷安装到容器路径时,它会将原始内容从映像复制到已安装的卷。(如果您将一个空卷挂载到容器中存在文件或目录的目录中,这些文件或目录将被传播(复制)到该卷中。同样,如果您启动一个容器并指定一个尚不存在的卷,为您创建一个空卷。这是预填充另一个容器需要的数据的好方法。) 来自官方页面的 Docker Volume 概述
但是,我尝试在 Kubernetes 中执行类似的操作,安装的卷将覆盖安装路径。这是我的部署 yaml 文件的路径。
apiVersion: apps/v1
kind: Deployment
metadata:
......
spec:
containers:
- name: nginx
image: nginx:1.13
ports:
- containerPort: 80
volumeMounts:
- name: datavol
mountPath: /var
volumes:
- name: datavol
persistentVolumeClaim:
claimName: oscarv1
Run Code Online (Sandbox Code Playgroud)
就我而言,路径 /var 变空了。如何将原始数据保留在容器映像中的 /var 下?何时将卷安装到 Pod?
我想在我的 Windows 10 机器上使用 VMware 和 Docker。Docker 需要 Hyper-V,而 VMware 对此很生气。如何解决这个冲突?
这是我当前的50-unattended-upgrades文件:
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESM:${distro_codename}";
"${distro_id}:${distro_codename}-updates";
};
// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {};
Unattended-Upgrade::DevRelease "false";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Run Code Online (Sandbox Code Playgroud)
一个containerd升级做一大早
2020-04-03 06:39:18,853 INFO Initial blacklisted packages:
2020-04-03 06:39:18,854 INFO Initial whitelisted packages:
2020-04-03 06:39:18,854 INFO Starting unattended upgrades script
2020-04-03 06:39:18,854 INFO Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic, o=Ubuntu,a=bionic-updates
2020-04-03 06:39:22,458 INFO Packages that will be upgraded: containerd
2020-04-03 06:39:22,458 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2020-04-03 …Run Code Online (Sandbox Code Playgroud) docker ×10
linux ×2
ubuntu ×2
alias ×1
android ×1
bash ×1
boot ×1
container ×1
dns ×1
docker-swarm ×1
hyper-v ×1
ipv6 ×1
jenkins ×1
linux-mint ×1
networking ×1
newlines ×1
terminal ×1
virtualbox ×1
vmware ×1
windows ×1