Questions tagged «docker»

Docker是一个为应用程序创建容器的应用程序。

2
centos6中的locale-gen命令
在我的裸centos6.5系统(它是一个docker容器)中,en_US.utf-8缺少语言环境: bash-4.1# locale -a C POSIX 通常在Ubuntu中有locale-gen执行此操作的命令: # locale-gen en_US.UTF-8 # echo 'LANG="en_US.UTF-8"' > /etc/default/locale 如何在centos 6.5中执行此操作?
17 locale  centos  docker 

3
Docker覆盖了容器中的/etc/resolv.conf文件
我想将resin/rpi-raspbian:jessie容器设置/etc/resolv.conf为: nameserver 208.67.222.222 nameserver 208.67.220.220 我的Dockerfile包含以下行: ADD resolv.conf /etc/resolv.conf 此添加的文件包含正确的名称服务器。 我的Docker主机/etc/resolv.conf包含正确的信息。 我正在像这样运行容器: docker run -itd --cap-add=NET_ADMIN --device /dev/net/tun \ -v /home/pi/share/ovpn:/ovpn \ --privileged --network=internet_disabled --name vpn-client \ --dns=208.67.222.222 \ openvpn-client_nat-gateway /bin/bash 尽管如此,容器仍提供以下输出: root@642b0f4716ba:/# cat /etc/resolv.conf nameserver 127.0.0.11 options ndots:0 只有在我从容器内(或使用docker exec)手动更改resolv.conf后,它才看起来正确。 我宁愿避免使用exec命令对其进行修复。有人知道这里发生了什么吗?
17 docker 

4
如何在Docker内部替换lsof(本机,不是基于LXC)
我有点困惑,因为在Docker容器lsof -i内没有任何输出。 示例(来自容器内部的所有命令/输出): [1] root@ec016481cf5f:/# lsof -i [1] root@ec016481cf5f:/# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp6 0 0 :::22 :::* LISTEN - 另请注意,不会显示PID或程序名称netstat。fuser还给出了一些令人困惑的输出,并且也无法精确定位PID。 谁能对此有所启示? 我该如何替代lsof -i(也要查看进程名称!) 为什么产量netstat也会下降? 注意:容器运行"ExecDriver": "native-0.1",这是Docker自己的执行层,而不是LXC。 [1] root@ec016481cf5f:/# fuser …

3
Docker:在特定目录中创建持久卷
我需要为Docker 创建一个持久卷。该卷必须命名extra-addons并位于中/mnt/。 我运行以下命令: sudo docker volume create /mnt/extra-addons 我收到此错误消息: Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path 请注意,当我简单地运行:时sudo docker volume create extra-addons,我没有遇到这个问题,但是当我使用来检查有问题的卷时sudo docker inspect extra-addons,我看到它位于我不想要的地方: [ { "CreatedAt": …
16 docker 

1
什么是cgroupfs?如何与Docker一起使用?
在Docker文档中,讨论了本机execdriver(https://docs.docker.com/engine/reference/commandline/daemon/)的选项。该文件说 native.cgroupdriver选项指定对容器cgroup的管理。您可以指定cgroupfs或systemd。如果指定systemd,但它不可用,则系统使用cgroupfs。默认情况下,如果未指定任何选项,则execdriver首先尝试systemd,然后退回到cgroupfs。此示例将execdriver设置为cgroupfs: 我的问题是cgroupfs,systemd在这种情况下,它是什么?谷歌搜索有关的信息cgroupfs导致了一条推文: --exec-opt native.cgroupdriver = cgroupfs FTW。认真@docker,放弃对systemd管理的cgroup的支持,这是一场灾难 但是,我希望有人可以提供更多有关此功能的详细信息,而不仅仅是说使用与默认设置不同的设置。
16 linux  docker 

2
如何在Wayland下的容器中运行图形应用程序?
当我使用X11桌面时,可以通过共享$DISPLAY变量和/tmp/X11-unix目录在docker容器中运行图形应用程序。例如: docker run -ti -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix some:ubuntu xclock 现在,我在运行Wayland的Fedora 25上,因此没有X11基础结构可与容器共享。如何在容器中启动图形应用程序,并将其显示在桌面上?在XWayland中有什么联系的方法吗?
15 x11  docker  wayland 

2
什么时候以及为什么应该使用apt-get update?
一般问题: 有人可以解释该命令的apt-get update作用以及何时真正使用它吗? 备注 请给出详细的答案。不仅是手册页的副本,除非您的版本非常详细(我在下面的手册页中放了一个定义)。 apt-get update:用于从其源重新同步程序包索引文件。可用软件包的索引是从/etc/apt/sources.list(5)中指定的位置获取的。应始终在升级或dist-upgrade之前执行更新。 子问题: 包索引存储在哪里?在数据库上?在文件上? 如果apt-get install不更新缓存怎么办?是否有可能不再存在远程软件包并且链接将被断开? 关于deb存储库是否存在一些达成共识的政治?例如,存储库应仅包含软件包的最新版本,还是相反应包含特定发行版可用的所有版本? 语境 我问我的问题是因为我正在研究Docker框架。它的功能之一是Dockerfile,它允许您通过从该文件执行一些指令来构建某种OS映像。该映像的一个属性是,无论上下文如何(构建时间等),它都应该始终相同。 恐怕如果我apt-get update在不同的时间启动命令,结果将有所不同,因此我的图像也会有所不同。
15 apt  docker 

5
无法在最小的Centos Docker容器上安装手册页
我只有一个最小的Centos 7 Docker映像,并且试图在其上获得一些手册页,以帮助调试Dockerfile。开箱即用,它没有太多: # man ls No manual entry for ls 根据Serverfault的这个答案,我安装了man-pagesRPM,看来一切正常: # yum install -y man-pages Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile * base: mirror.vtti.vt.edu * extras: centos.mbni.med.umich.edu * updates: centos.netnitco.net Resolving Dependencies --> Running transaction check ---> Package man-pages.noarch 0:3.53-5.el7 will be installed --> …
13 centos  rpm  man  docker 

4
Docker +网桥+ DHCP
我有很多Docker容器,它们需要在与它们的主机相同的LAN上寻址。到目前为止,我已经通过建立网桥并手动为其分配IP并自行管理IP 来实现这一目标。启动示例如下所示: docker run \ --net="none" \ \ --lxc-conf="lxc.network.type = veth" \ --lxc-conf="lxc.network.ipv4 = 192.168.1.3/24" \ --lxc-conf="lxc.network.ipv4.gateway = 192.168.1.254" \ --lxc-conf="lxc.network.link = br0" \ --lxc-conf="lxc.network.name = eth0" \ --lxc-conf="lxc.network.flags = up" \ -d [Docker Image ID] 主机在/etc/network/interfaces(ubuntu)中定义了网桥,如下所示: auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address …
13 dhcp  bridge  docker 

2
无法运行docker hello-world:找不到设备的安装点
Docker的新手。 从中的软件管理工具安装了docker mint 17。 当我跑步时, docker run hello-world我收到: FATA[0000] Error response from daemon: Cannot start container a6bcc1ede2c38cb6b020cf5ab35ebd51b64535af57fa44f5966c37bdf89c8781: [8] System error: mountpoint for devices not found 查看服务日志(/var/log/upstart/docker.log)时,我看到: ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file …

1
我可以通过交互方式从Dockerfile构建Docker容器并分配一些伪TTY吗?
我从Dockerfile下面构建容器: FROM ubuntu:14.04 ... RUN apt-get update && apt-get install -y vim #RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^ RUN ssh-keygen -f /root/.ssh/id_rsa ... 我很少这样做,但是在使用前后都有很多命令ssh-keygen。 我知道我可以从脚本开始docker exec -it thirsty_darwin sh script.sh,然后标记图像,然后使用容器(图像)链接,但这并不是我想要的清晰解决方案。 更糟糕的情况是ssh-add ~/.ssh/id_rsa我必须使用Expect工具。Expect工具已经硬编码了我的密码。我不想做。

4
是否可以通过Shell脚本修改yml文件?
这就是我的docker-compose.yml的样子。 nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' links: - 'anything' 现在,我需要通过shell脚本(在ubuntu服务器上)添加一些内容。我不太确定是否有可能: 将新元素添加到nginx/links(如果不存在) newthing如果不存在newthing-block,则附加块 新内容应如下所示: nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' - '/etc/letsencrypt:/etc/letsencrypt' links: - 'anything' - 'newthing' newthing: container_name: foo image: 'newthing:1.2.3' …

2
为什么Docker需要root特权?
我正在学习Docker,我非常喜欢它。 但是,我不明白,为什么docker需要root特权来制作容器,读取日志等等。 我读过一些这样的文章 https://docs.docker.com/articles/security/ 但我所看到的只是“码头工人需要root特权,因为它可以访问根文件夹”。好吧,我不介意以非root用户身份运行docker,而只给他们访问外部系统中非root用户拥有的文件夹的权限。 为什么会有问题呢?
11 docker 

2
Docker / LXC中的AppArmor配置文件
我有一个运行MySQL的Docker容器(LXC)。由于Docker的思想通常是“每个容器运行一个进程”,因此,如果我定义针对MySQL二进制文件的AppArmor配置文件,是否将其实施?我有办法测试吗?
11 lxc  apparmor  docker 

1
bash在交互式Docker容器中无法正确调整大小
每次终端大小更改时,通常bash都会resize自动更改,以便正确地重新计算LINES和COLUMNS。但是由于某种原因,它不能在bash交互式运行的Docker容器中工作。 我有shopt checkwinsize -s我bashrc的泊坞窗容器(并验证它on使用shopt)。与主机bash会话相同。 我真的没主意了;shopt checkwinsize -s是我发现的唯一一种可以在调整窗口大小时bash自动评估resize的方法。
11 bash  docker 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.