Questions tagged «docker»

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

1
当podman从systemd启动时,为什么conmon在另一个cgroup中?
给定podman安装在linux系统和名为baz.service的systemd单元上: # /etc/systemd/system/baz.service [Service] ExecStart=/usr/bin/podman run --rm --tty --name baz alpine sh -c 'while true; do date; sleep 1; done' ExecStop=/usr/bin/podman stop baz 然后baz.service启动: # systemctl daemon-reload # systemctl start baz.service 然后,当我检查设备的状态时,在/system.slice/baz.service cgroup 中看不到shor sleep进程 # systemctl status baz ● baz.service Loaded: loaded (/etc/systemd/system/baz.service; static; vendor preset: enabl Active: active …

1
docker-如何在容器中运行x桌面?
我试图将我的Linux机器设置为运行多个来宾OS,其中一个是Windows VM,另一个是Linux容器。这里的目标是防止我弄乱主机系统,同时可以自由操作基本操作系统并使用主机硬件。最终,我希望在容器中运行我的桌面,然后希望运行图形加速的模拟等。由于Docker具有如此好的git内置容器版本,因此使用它似乎是一个好主意。也许libvirt与LXC一样好,但是docker的特权模式使不必为容器配置设备变得更加容易。 我已经做了一些研究,并已经提出了一些答案,但是我很难将所有内容放在一起。 LXC中的背景 从LXC运行X有助于我了解如何使用以下方式配置容器: lxc.cgroup.devices.allow = c 226:0 rwm 和使用 mknod -m 666 dri/card0 c 226 0 在容器内部以连接到主机设备。 码头工人 从cuda中-使用来自docker容器的GPU,我看到我可以使用LXC后端在Docker中使用相同的设置。 在我看来,如果docker容器在特权模式下运行,那么它可以正常访问GPU,而无需进行额外配置。因此,我启动了一个基本系统,安装了图形驱动程序,xorg-server,xorg-xinit和一个窗口管理器进行测试。 第一次尝试 # startx Cannot run from a console (or some message like that) 好的,我以为我在tty2上。 # tty /dev/console 那不是我所期望的。 # chvt 2 # tty /dev/tty2 好吧,看来好像可行。让我们再试# startx一次。它启动了窗口管理器,光标位于中间。无鼠标响应。无键盘响应。让我们尝试使用更改tty Ctrl-Alt+F3。没有反应。好吧,看来我将不得不重新启动。 第二次尝试 …

1
有使用特权选项构建Docker容器的技巧吗?
我必须添加一些规则iptables,在构建过程中它会给我一个错误,因为我需要privilege,有什么办法可以解决它,我知道其中没有任何privilege选择build,或者我可以在不运行它的情况下进行构建和映像吗?
10 docker 

2
在docker中查找和sed字符串时出现错误`设备或资源繁忙'
此问题仅在docker容器中发生。 仅find是罚款: find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json" find 与sed find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g" 给出一个错误: /xxx/config/sed8Ey5tD: Device or resource busy 我不明白是什么sed8Ey5tD,ls看不到。我认为这是由docker造成的,但无法解决。 如何取得sed成功? 好吧,我发现这个文件是由搬运工volumed,有 volumes: /xxx/config.json : /xxx/config/config.json 在docker-compose.yml。之后docker-compose down,可以编辑文件。但是,如何在没有文件的情况下编辑文件docker-compose down?
10 sed  find  docker  xargs 


2
XML命令行(shell脚本)操作
如何在Shell脚本中从命令行操作XML? 有许多用于处理表格数据,替换环境变量或用正则表达式替换文本片段的命令,但是我还没有发现任何针对XML的命令。 我的构建脚本需要在xml文档的主标签中插入一个带有内容的标签,为此我发现在OS中安装Java,Perl或python是一个杀手kill脚(我的脚本是在gitlab中使用docker镜像完成的,因此我的工作使用maven:3.5-jdk-8图片中可用的工具将是一个梦想)。 我不想用sed处理XML,尽管在我的构建脚本中它可以工作,因为它很邪恶。 示例:我有以下xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- a lot of other tags--> </project> 我想插入以下代码块: <distributionManagement> <repository> <id>private-releases</id> <url>https://my.private.server.com/nexus/repository/maven-releases/</url> </repository> </distributionManagement> 在项目代码中(并且无论是在开始还是结束时都没有关系。

2
如何从Docker容器运行Chromium
环境 MacOS Sierra 10.12.6 Docker版本17.09.0-CE,构建afdb6d4 Ubuntu 16.04 XQuartz 2.7.9 我想将Docker容器中的Chromium浏览器打开到我的Mac桌面上。 docker run -i -t ubuntu:16.04 /bin/bash apt-get update apt-get install alsa-base chromium-browser xauth adduser myuser 承诺 docker commit 2862a7bfcc2f acme/mycontainer:0.1 myuser从容器失败运行铬浏览器 docker run --user myuser -i -t acme/mycontainer:0.1 /usr/bin/chromium-browser Failed to move to new namespace: PID namespaces supported, Network namespace …
9 ubuntu  x11  docker  chrome 

1
安装Docker会挂在ubuntu xenial上的“设置docker-engine”上
我正在尝试在ubuntu xenial上安装docker并遵循本教程:https ://docs.docker.com/engine/installation/linux/ubuntulinux/ 。到目前为止,一切顺利,只是我的内核版本(4.6.0-040600-generic)显然没有linux-image-extra。该教程说,这不是必需的,因此我认为这不是完全必要的。 我到了要运行的地步,sudo apt-get install docker-engine安装正在进行中Setting up docker-engine (1.11.2-0~xenial) ...。我已经看过了top,它没有使用任何CPU,所以我认为它实际上没有做任何事情。我最终重新启动计算机,摆脱了部分安装的软件包,并结合了dpkg -r,apt-get --purge remove以及其他一些我已经忘记的相关内容,然后尝试重新安装它。它以相同的方式挂起。 如何成功安装?
9 ubuntu  apt  docker 

1
到IPv6本地主机的curl请求被卡住
我的docker容器在端口8500上暴露了HTTP接口,该端口映射到主机端口8500。未启用IPv6。这仍然意味着,我应该能够在localhost:8500上访问它。首选IPv6,因此我最终请求了[:: 1]:8500。这个卡住了,再也回不来了。 用curl复制它,这个命令卡住了: curl -g -6 "http://[::1]:8500" curl的--verbose选项不会显示任何内容,--ascii-trace也不会显示任何内容。同时,对IPv4本地主机的请求成功: curl http://127.0.0.1:8500 给我期望的HTML。如果我在回送上运行IPv4 HTTP服务器,请使用 python -m SimpleHTTPServer 4001 然后我得到了很多用于IPv4本地主机的HTML curl http://127.1:4001 以及IPv6的正确连接失败: curl -g -6 "http://[::1]:4001" curl: (7) Failed to connect to ::1 port 4001: Connection refused 注意事项:Docker 1.7.1。容器未启用IPv6 ,因此没有IPv6 iptable规则。(ip6tables -v -L不提供任何内容) 我的问题是:为什么请求卡住了,怎么办?
9 ipv6  docker  ipv4 

2
在systemd Docker容器中继承环境变量
我有一个运行systemd的Docker容器。我想将环境变量传递给它下面的应用程序。 当我从Docker(/sbin/init作为命令行)启动systemd时,Docker将变量公开给systemd,但不公开给子服务。如果我添加systemd.setenv=...到cmdline,则会传递变量。我正在寻找更清洁的解决方案。 如何公开传递给/sbin/init它启动的应用程序的环境变量? % docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged -ti \ -e VAR1=1 motiejus/systemd_fedora20 \ init systemd.setenv=VAR2=2 ... Welcome to Fedora 20 (Heisenbug)! ... [ OK ] Reached target Multi-User System. [root@740690365eb0 ~]# env | grep VAR VAR2=2 我希望VAR1=1在运行命令时看到。 换句话说,systemd可以将传递给它的变量传递给它启动的子级吗? 对于Dockerfile,请参阅github存储库。

1
RPMDB校验和无效-尝试在CentOS 7.2 Docker映像中安装gcc
所以我试图创建一个包含gcc的Docker镜像。 我RUN yum -y install gcc在Dockerfile中运行命令。 它会下载软件包,直到最终尝试安装依赖项失败为止。 Rpmdb checksum is invalid: dCDPT(pkg checksums): glibc-headers.x86_64 0:2.17-157.el7_3.1 - u 以下是输出: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc x86_64 4.8.5-11.el7 base 16 M Installing for dependencies: cpp x86_64 4.8.5-11.el7 base 5.9 M glibc-devel x86_64 2.17-157.el7_3.1 updates 1.1 M glibc-headers …
9 centos  docker  glibc 

3
“ date -d”命令在Docker Alpine Linux容器上失败
我使用以下Dockerfile 在Docker容器中构建了Alpine Linux: FROM alpine:3.2 RUN apk add --update jq curl && rm -rf /var/cache/apk/* 构建成功运行: $ docker build -t collector . Sending build context to Docker daemon 2.048 kB Sending build context to Docker daemon Step 0 : FROM alpine:3.2 3.2: Pulling from alpine 8697b6cc1f48: Already exists alpine:3.2: The …

1
往返于Docker容器的mDNS
我已经制作了一个Docker容器,该容器运行一个forked-daapd(通过mDNS发布的DAAP服务器,该端口具有用于HTTP请求的单个端口3689),并将该端口正确地公开给主机操作系统: sudo docker run -it --rm -v /home/naftuli/Music:/srv/music -p 3689:3689 \ daapd /sbin/my_init 问题在于该服务永远不会正确发布到mDNS,因为它的IP地址(某些内部Docker IP范围)不能真正起作用。我可以使用来运行它--net=host,但这可能非常危险,因为我基本上是将网络适配器交给容器。 有没有办法让我发布此服务并按计划进行地图绘制?
9 docker  avahi  mdns 

2
没有人的手动输入
我正在使用Centos 6.6 Docker映像。我以为我已经安装了所有东西来访问手册页,但是显然不是... $ yum install -y man man-pages man-pages-overrides [...] Complete! $ which man /usr/bin/man $ man man No manual entry for man 我想念什么? 关于评论中的问题(感谢大家的帮助): $ echo $MANPATH # empty $ man 1 man No entry for man in section 1 of the manual $ man 7 man No …
9 centos  man  docker 

2
Docker容器内部的应用程序更新?
通常,在服务器上配置与安全相关的补丁程序的自动更新。因此,如果我正在运行MySQL 5.5并且发布了新的安全补丁,Ubuntu Server将应用升级并重新启动MySQL,以自动方式保护我。显然,可以禁用此功能,但这对那些懒惰的人很有帮助;) Docker容器内部是否存在这样的概念?如果我在Docker容器中运行MySQL,是否需要不断停止该容器,在其中打开一个外壳,然后更新和升级MySQL?
9 lxc  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.