Tag: Linux容器

如何pipe理/旋转/删除mesos日志

我使用以下命令启动mesos主容器: ExecStart=/usr/bin/docker run –rm \ -e MESOS_HOSTNAME={{ ansible_hostname }} \ -e MESOS_IP={{mesos.external_ip}} \ -e MESOS_QUORUM={{mesos.quorum}} \ -e MESOS_ZK={{mesos.zk}} \ -e MESOS_LOG_DIR=/var/log/mesos -v /var/log/mesos:/var/log/mesos \ -e MESOS_WORK_DIR=/var/lib/mesos -v {{mesos_work_dir}}:/var/lib/mesos \ –name mesos-master –net host {{docker.master}} 我得到了大量的mesos日志: mesos日志 lrwxrwxrwx. 1 root root 60 Apr 19 17:14 mesos-master.INFO -> mesos-master.vdorct1.invalid-user.log.INFO.20170419-141458.6 -rw-r–r–. 1 root root 23983 Apr 19 16:46 […]

在Windows 10上的Docker容器上运行桌面应用程序

我想在我的Windows 10机器(i5,8GB,240 GB ssd,2&1笔记本)中使用Linux开发环境(Java,Intellij Idea,Clojure和ClojureScript)。 我可以用: 一个Linux VM(使用Hyper-V,VMware Player或Virtual Box)或者 一个运行桌面应用程序的Docker容器。 我想尝试第二个选项。 在桌面上的Docker Containers中 ,作者运行Chrome浏览器docker,使用: $ docker run -it \ –net host \ # may as well YOLO –cpuset-cpus 0 \ # control the cpu –memory 512mb \ # max memory it can use -v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket -e DISPLAY=unix$DISPLAY \ […]

Alpine Linux的“–upgrade add”命令的解释

我想了解Dockerfile https://hub.docker.com/r/rdsubhas/tor-privoxy-alpine/~/dockerfile/ ,其中包含一个RUN执行与 apk –update add privoxy tor@testing runit@testing 我想检查一下如何使用apk命令,所以我尝试在Alpine环境中打开一个terminal,如下所示: docker run -it –rm alpine:latest /bin/ash 之后我只是运行apk来查看它的用法: / # apk apk-tools 2.6.8, compiled for x86_64. usage: apk COMMAND [-h|–help] [-p|–root DIR] [-X|–repository REPO] [-q|–quiet] [-v|–verbose] [-i|–interactive] [-V|–version] [-f|–force] [-U|–update-cache] [–progress] [–progress-fd FD] [–no-progress] [–purge] [–allow-untrusted] [–wait TIME] [–keys-dir KEYSDIR] [–repositories-file REPOFILE] [–no-network] [–no-cache] [–arch ARCH] […]

以非root用户身份启动容器,以root身份启动,然后降级为非root用户

我正在创build一些Docker镜像,我正在阅读其他人如何做这个。 当涉及到在容器中运行进程的用户时,我已经确定了三种一般模式: 它使用root用户进行所有操作(在根目录下的容器内部产生的进程(es))。 它使用root用户 ,做一些东西,然后降级到非root用户 (所以主进程在非root用户下运行,即使pid 1仍然是root)。 这发生在例如官方的nginx容器中: PID USER TIME COMMAND 1 root 0:00 nginx: master process nginx -g daemon off; 5 nginx 0:00 nginx: worker process PID USER TIME COMMAND 1 root 0:00 nginx: master process nginx -g daemon off; 5 nginx 0:00 nginx: worker process 它使用非root用户的一切。 我知道,一般来说,如果没有需要的话,应该避免在Docker容器中使用root用户 (虽然似乎这个build议被大量忽略,但这是其他一些主题)。 但是从安全angular度来看,第二个和第三个选项有什么不同?

无法推/拉到远程dockerregistry

我正在尝试在我的networking中设置一个存储库,在networking中的其他人可以拉/推新的docker图像。 我目前有一个工作的dockerregistry运行在一个前端的debian服务器( https://github.com/kwk/docker-registry-frontend ); 两者都在同一台服务器上运行。 Debian Server正在运行3.16.0-4-amd64#1 SMP Debian 3.16.39-1 + deb8u2(2017-03-07)x86_64 GNU / Linux 大多数事情似乎工作… 作品 – 如果我ssh进入服务器,我可以推/拉图像到registry 作品 – 从networking中的任何其他计算机,我可以访问前端,并在registry中正确显示图像。 作品 – 在浏览器中,我可以直接命中my.registry.ip:5000 / v2 / _catalog,我会得到一个存储在registry中的图像名称数组。 但是,当我去推/拉到本地registry… 不工作 – 来自守护进程的错误响应:没有路由到主机 有些事情要注意: 我正在使用Windows和dockerterminal尝试推送/拉图像与registry。 版本:17.04.0-ce API版本:1.28 Docker工具箱 我们也看了很多不同的post,并尝试使用推荐的build议无法拉动/更新docker后的图像到1.12,但似乎没有解决问题。 我对如何解决这个问题没有想法。 我相信我非常接近,解决办法很小,但我不知道从哪里去。 如果您需要更多的信息,请让我知道! 感谢您的帮助。

docker工人将cgroup驱动程序更改为systemd

我想要docker启动systemd cgroup驱动程序。 出于某种原因,它只在我的centos 7服务器上使用cgroupfs。 这里是启动configuration文件。 # systemctl cat docker # /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target Wants=docker-storage-setup.service Requires=docker-cleanup.timer [Service] Type=notify NotifyAccess=all EnvironmentFile=-/etc/sysconfig/docker EnvironmentFile=-/etc/sysconfig/docker-storage EnvironmentFile=-/etc/sysconfig/docker-network Environment=GOTRACEBACK=crash Environment=DOCKER_HTTP_HOST_COMPAT=1 Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin ExecStart=/usr/bin/dockerd-current \ –add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \ –default-runtime=docker-runc \ –exec-opt native.cgroupdriver=systemd \ –userland-proxy-path=/usr/libexec/docker/docker-proxy-current \ $OPTIONS \ $DOCKER_STORAGE_OPTIONS \ $DOCKER_NETWORK_OPTIONS \ $ADD_REGISTRY \ $BLOCK_REGISTRY \ $INSECURE_REGISTRY ExecReload=/bin/kill -s HUP […]

大规模应用程序的高山配送食品?

在学习和学习Docker的过程中 ,我读了很多关于Linux发行版的内容,我总是在Alpine上看到正面的评论,因为它是轻量级的,但是使用轻量级的缺点是什么? 我猜测,因为它是轻量级的,它也有一个缺点,当涉及到扩展..此外,什么可以是一个轻量级的分布相比,像Ubuntu的其他发行版的优势? 我如何testing和感受优势?

从shell执行多个命令到docker容器

我试图做一个命令,从docker集装箱做一个bash,打开mongo,并用类似的东西提出请求 'db.test.find({});' 我正在阅读其他类似的文章没有成功。 这是我正在执行的命令。 docker exec -it mongoDB bash -c'mongo; 使用testing; db.test.find({})” 那个命令给了我这个 bash:-c:第0行:附近出现意外令牌的语法错误{}' bash:-c:第0行:mongo; 使用testing; db.test.find({})” 这可能吗? 我希望你能帮助我。 问候, 罗斯。

使用Docker容器中的GNU Mailutils发送邮件

我创build了一个docker镜像,在这里我使用以下命令安装mailutils包: RUN apt-get update && apt-get install -y mailutils 作为示例命令,我正在运行: mail -s 'Hello World' {email-address} <<< 'Message body' 当我在本地机器上执行相同的命令时,它发送邮件。 但是,在docker容器中,它没有显示任何错误,但是在指定的电子邮件ID上没有收到邮件。 我尝试使用–net=host参数在产卵我的docker集装箱。 以下是我的docker命令: docker run –net=host -p 0.0.0.0:8000:8000 {imageName}:{tagName} {arguments} 有什么我失踪? 有人能解释这个问题背后的networking概念吗?

无法使用dockerfile运行shell脚本

我是新来的docker,我只是想在容器内复制贝壳,我想执行贝壳。 Dockerfile: FROM amazonlinux WORKDIR /opt ADD ./test_Install.sh /opt/test_Install.sh RUN chmod 777 /opt/test_Install.sh WORKDIR / RUN ./test_Install.sh 构build镜像: docker build -t "testinstallscript:dockerfile" . 当我使用命令"docker build -t "testinstallscript:dockerfile" ." 我得到以下错误: standard_init_linux.go:178:exec用户进程导致“没有这样的文件或目录” 命令'/opt/test_Install.sh'返回一个非零的代码:1 谁能告诉我我在这里做错了什么?