标签: docker

Docker exec 不加载别名

我有一个 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 中找不到可执行文件

到目前为止,我在网上找到的其他建议并没有奏效。任何人?

bash alias container docker

7
推荐指数
2
解决办法
9755
查看次数

jenkins:损坏的 AVD 系统路径。检查您的 ANDROID_SDK_ROOT 值

我有詹金斯的码头工人形象。

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)

linux android ubuntu jenkins docker

7
推荐指数
0
解决办法
3591
查看次数

在 Windows 10 上卸载 Docker 后 VirtualBox 不再工作

VirtualBox 在我的 Windows 10 机器上运行良好。对于另一个项目,我必须安装 Docker。完成这项工作后,我卸载了 Docker。现在我的 VirtualBox 虚拟机不再工作(某种 VT-X 问题?)。我检查了 BIOS 并启用了 VT-x 设置。

谁能建议为什么卸载 Docker 会导致这种情况,以及如何让 VirtualBox 再次工作。机器是E470 Thinkpad。

在此处输入图片说明

virtualbox docker

7
推荐指数
2
解决办法
8649
查看次数

当 DNS 服务器作为 docker 主机中的 docker 容器运行时,“来自意外来源的回复”

在一台有 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)

networking dns docker

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

docker exec 搞乱了终端换行?

当我将输出通过管道传输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)

terminal newlines docker

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

Docker.service需要1分30秒导致启动缓慢

我使用的是 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 花费了大量时间,有人知道我该如何解决这个问题吗?

linux boot linux-mint docker

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

IPv6 在 Docker 群中不起作用?

我有一台运行 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: …

ipv6 docker docker-swarm

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

将数据从图像复制到 kubernetes 中的空卷

在 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?

docker

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

同一台 Windows 10 PC 上的 VMWare 和 Docker

我想在我的 Windows 10 机器上使用 VMware 和 Docker。Docker 需要 Hyper-V,而 VMware 对此很生气。如何解决这个冲突?

windows vmware hyper-v docker

7
推荐指数
2
解决办法
1万
查看次数

Ubuntu 无人值守升级停止 Docker

这是我当前的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)

ubuntu docker

7
推荐指数
0
解决办法
1049
查看次数