Tag: Linux容器

jenkins容器中的docker工具(与装载的docker套接字)没有finddocker守护进程来连接

我刚刚开始了一个jenkins docker容器,里面有一个如下的docker插槽: docker run -d \ –publish 8080:8080 \ –publish 50000:50000 \ –volume /my_jenkins_home:/var/jenkins_home \ –volume /var/run/docker.sock:/var/run/docker.sock \ –restart unless-stopped \ –name my_jenkins_container \ company/my_jenkins:latest 然后我像这样打开容器: docker exec -it my_jenkins_container bash jenkinspipe道脚本中的tool 'docker' docker tool 'docker'命令自动在以下path中安装了/var/jenkins_home/tools/org.jenkinsci.plugins.docker.commons.tools.DockerTool/docker/bin/docker二进制文件: /var/jenkins_home/tools/org.jenkinsci.plugins.docker.commons.tools.DockerTool/docker/bin/docker 但是,当我尝试从该docker二进制码运行docker命令( 假设它将连接到已挂载在/var/run/docker.sock的docker套接字 ),它会返回以下错误 : $ /var/jenkins_home/tools/org.jenkinsci.plugins.docker.commons.tools.DockerTool/docker/bin/docker images Cannot connect to the Docker daemon. Is the docker daemon running […]

Docker容器中的OpenJDK 1.8.0与/ etc / timezone和主机有不同的时区

我有一个运行TomEE的Docker容器的Linux机器,运行一个我构build的WAR。 在基本的Linux机器上,我得到一个“date”值“2017年1月20日10:37:27 PST 2017”。 TZ环境variables未设置。 当我运行以下类: import java.util.Date; import java.util.TimeZone; public class DatePrint { public static void main(String[] args) { System.out.println("date[" + new Date() + "] tzoffset[" + TimeZone.getDefault().getOffset(new java.util.Date().getTime()) + "]"); } } 我得到这个: date[Fri Jan 20 10:39:02 PST 2017] tzoffset[-28800000] 这一切都很好。 在我的Docker容器上运行,其中我有“-v / etc / localtime:/ etc / localtime”作为一个卷映射,我显然有相同的/ etc / localtime文件。 TZ环境variables未设置。 […]

在不同的主机操作系统上构buildDocker镜像

对于以下作业,下划线Linux发行版和/或版本可以不同: build立一个Docker镜像(比如在Ubuntu主机上构build一个CentOS docker镜像,或者在CentOS 7.1主机上构build一个CentOS 6.6 docker镜像)运行一个docker容器(比如在Fedora主机上运行一个CentOS docker容器,或者运行一个CentOS 6.6 Docker容器在CentOS 7.1主机中) 同样的问题适用于Docker引擎版本,例如,我可以在安装了Docker 1.9的主机上构buildDocker镜像,但是在安装了Docker 1.12的主机上运行它? 还有更深层的Linux内核版本如何构build,例如在内核3下构build,而在内核4下运行? 我想我明白Docker真的只是类固醇上的chroot环境,所以在构build和运行容器时强调操作系统并不重要,但是我发现人们遇到了操作系统/版本不兼容的问题,任何人都可以提供关于此主题的一些见解?

如何在Docker中使用redirect

将Docker输出保存到主机 docker run centos cat /etc/hosts > asdf “asdf”保存在我的主机Linux中。 将Docker输出保存到容器 docker run centos sh -c 'cat /etc/hosts > /tmp/asdf ' docker run centos cat /tmp/asdf cat: /tmp/asdf: No such file or directory 它不工作,我怎么能猫新的文件? 在容器中使用“<” docker run centos sh -c 'cat < /etc/hosts' 127.0.0.1 localhost 好 用“<”读取文件 docker run centos cat < /etc/hosts 什么都没发生。 我怎样才能在容器中获取主机文件?

在Ubuntu切换文件系统覆盖不支持的Docker?

我运行docker在Ubuntu的一个stream浪的虚拟框中以root用户身份login,我试图从devicemapper切换到覆盖,但我得到一个错误说: root@vagrant-ubuntu-trusty-64:/# service docker stop docker stop/waiting root@vagrant-ubuntu-trusty-64:/# rm -rf /var/lib/docker root@vagrant-ubuntu-trusty-64:/# docker daemon -s overlay Command "daemon" is deprecated, and will be removed in Docker 1.16. Please run `dockerd` directly. INFO[0000] libcontainerd: new containerd process, pid: 6788 WARN[0000] containerd: low RLIMIT_NOFILE changing to max current=1024 max=4096 ERRO[0001] 'overlay' not found as a supported filesystem […]

升级主机后可以运行Docker容器吗?

我对Docker非常陌生,我仍然试图理解使用容器的含义。 如果我在Linux主机上为Docker创build一个容器,然后将主机升级到较新版本的Linux,那么旧容器在新系统上是否仍然保持不变?

Kubernetes:主机名正则expression式失败

尝试运行kubeadm初始化 [root@ts_kubernetes_setup ~]# kubeadm init [kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters. [preflight] Running pre-flight checks [preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly [preflight] Some fatal errors occurred: hostname "ts_kubernetes_setup.localdomain" must match the regex [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* […]

什么是Docker守护进程的名字?

我在macOS上运行Docker 。 这意味着我真的在装有VirtualBox的Linux虚拟机上运行Docker。 这是正确的吗? 从macOS我无法看到docker守护程序,因为它没有运行在我的macOS机器上: $ ps aux | grep docker max 4873 0.0 0.0 2432804 1732 s001 R+ 11:12AM 0:00.00 grep –color=auto docker 但是,如果我SSH入虚拟机(名为default ),那么我可以看到docker相关的进程: $ docker-machine ssh default ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ […]

Docker应用程序实时升级

我是docker的新手,在docker涉及时devise一个简单的实时升级解决scheme时遇到一些问题。 目前,我正在使用基于fork()/exec()的模式进行应用程序实时升级: 旧的服务器fork()是一个孩子的请求。 子服务器exec()新的可执行文件,加载新的数据/configuration。 旧服务器将必要的信息(套接字,内存数据等)传递给子服务器,以便它可以接pipe服务。 旧服务器在小孩准备就绪后停止处理新请求(旧服务器不会exit() ATM)。 如果升级成功,则手动停止旧服务器(这可能会延迟到下次实时升级之前),否则停止子服务器并通知旧服务器重新启动处理请求。 正如您所看到的,这种实时升级策略通常不会造成停机,无论升级是否失败。 我们的大多数服务都是无状态的,或者状态非常简单,所以上述模式可以很容易实现,而且非常可靠。 我的问题是如何在docker执行上述模式(或类似的东西)? 也许我走错了方向,我是耳朵。

多个服务运行在一个容器或多个容器上的Docker?

我有一个用于开发的Laravel应用程序的容器。 所以我不使用一个Apache的图像,只有一个PHP 5.6的一个。 保持容器活着的过程不会停止 php artisan serve –host=0.0.0.0 这也是启动Laravel应用程序服务器的命令。 应用程序文件夹本地安装在我的电脑上。 对于我的项目,我还需要运行在我的应用程序根文件夹中: gulp watch php artisan run:command php artisan command:runServer 8282 那么我在哪里以及如何运行这些命令? 我应该为每个命令创build容器吗?