我们如何获取容器快照并在另一个docker主机中加载快照。 我想知道容器快照而不是图像。 我很困惑导出/导入和保存/加载命令在docker。 我希望得到更多的清晰度或文档,以更深入地理解它们。 快照有元数据来运行容器和屋顶。 在另一个docker主机的确切状态。 帮助这个方向会很好。
我有一个泊坞窗容器中的服务器上的Postgresql。 我怎样才能从外面,即从我的本地计算机连接到它? 我应该采用什么样的设置来允许?
我正在使用正式的Postgres Docker镜像尝试自定义其configuration。 为此,我使用命令sed来更改max_connections ,例如: sed -i -e"s/^max_connections = 100.*$/max_connections = 1000/" /var/lib/postgresql/data/postgresql.conf 我尝试了两种方法来应用此configuration。 首先是将命令添加到脚本中,并将其复制到init文件夹“/docker-entrypoint-initdb.d”中。 第二种方法是通过使用“RUN”命令直接在Dockerfile中运行它们(这种方法在configuration文件“/ etc / postgres / …”的非官方Postgresql映像中工作正常)。 在这两种情况下,更改失败,因为configuration文件丢失(我认为它还没有创build)。 我应该如何改变configuration? 编辑1: 以下是用于创build映像的Dockerfile: # Database (http://www.cs3c.ma/) FROM postgres:9.4 MAINTAINER Sabbane <contact@cs3c.ma> ENV TERM=xterm RUN apt-get update RUN apt-get install -y nano ADD scripts /scripts # ADD scripts/setup-my-schema.sh /docker-entrypoint-initdb.d/ # Allow connections from anywhere. RUN […]
简而言之 :如何在Mac OS X上设置Docker的HTTP / HTTPS代理? 详细地说 : 我在Mac OS X上运行代理后面的Docker(1.12)。 我按照安装说明安装了boot2docker。 如果我从networking内部的Dockerregistry中获取这个工作正常。 但是,从docker.io提取时出现以下错误: machine:~ me$ docker run ubuntu echo hello world Unable to find image 'ubuntu' locally Pulling repository ubuntu 2014/06/30 13:23:26 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io: no such host 注1 : DOCKER_HOST , http_proxy和https_proxy在环境中可用(运行env显示全部三个)。 注2 :我在其他post中读到,当守护程序运行不正常时会发生此错误。 但是, docker version不显示任何问题。 此外,我可以拉和运行从我的networking内部的Dockerregistry中提取的图像。 注3 :我可以在Red […]
我正在运行一个Docker容器,主要是作为R语言的一个独立的开发环境。 (这里的R的用法与post的其余部分是正交的,也就是说,你可以假定任何可以在repl session中运行的通用程序)。很多时候这将涉及到做绘图,制作graphics等等的东西; 我需要看看这些。 因此,我宁愿有显示在我的容器中创build的graphics的选项。 到目前为止,我是这样做的。 首先我创build一个Dockerfile 。 把最重要的步骤排除在外: # Set root passwd RUN echo "root:test" | chpasswd # Add user so that container does not run as root RUN useradd -m docker RUN echo "docker:test" | chpasswd RUN usermod -s /bin/bash docker RUN usermod -aG sudo docker ENV HOME /home/docker RUN mkdir /var/run/sshd RUN […]
我创build了我的第一个docker集装箱,它使用Go运行服务器,但无法从主机外部访问它。 我刚刚开始与docker工人,所以我有点迷路了。 因此,我有一个非常简单的启动服务器的Go代码,我已经构build了Docker镜像,它安装了Go并在Linux基础镜像中构build了代码。 我正在端口8080上运行服务器,所以我暴露该端口运行容器的主机是这样的: docker run -p 8080:8080 dockertest 这工作, 我得到通过docker的机器IP ( 启动时出现在Docker快速启动terminal上的IP)访问服务器 ,问题是我无法访问我从主机外部托pipe的网站,所以如果我尝试在我的手机上打开相同的IP地址,只是给我一个错误:此网页不可用(ERR_CONNECTION_TIMED_OUT)。 我也试着指定这样的IP: docker run -p 192.168.0.157:8080:8080 dockertest 但是当我这样做,我不能通过泊坞窗机器的IP,也不是在上面的命令行上指定的IP访问网站。 我也不确定哪个IP我想写在该命令我用我的电脑的IP,我也尝试127.0.0.1(本地主机),但是这给了我相同的结果:不能访问通过任何网站IP什么。 我GOOGLE了这个问题,发现了很多stackoverflow的问题,但都没有帮助我解决了我的问题,其中大部分面向Linux或Mac,所以解决scheme并不适用于我的情况。 另外,我可以在计算机上运行Go代码,并通过计算机的IP从同一networking中的其他设备访问网站。 我不明白为什么我在Docker机器上运行它时无法访问它,这让我想到它可能与IP转发有关,但是我在networking上是一个完整的noob,主要是networking开发人员,几乎没有本地经验。
我的所有网站的代码都放在我的容器中的/srv下。 我的Dockerfile使用git下载代码,并使其成为图像的一部分,以便于部署到生产环境。 但是,如何编辑开发中的代码呢? 我认为使用卷是解决scheme,例如: -v /docker/mycontainer/srv:/srv 。 但它会覆盖容器中的目录。 如果这是我第一次运行它,它会清空它,因为主机中没有任何东西。 所以无论我在Dockerfile中做了什么都会丢失。 /srv/myapp里面还有目录和文件,我想在不同版本的应用程序之间共享,例如: /srv/myapp/user-uploads 。 这是专业网站开发中的常见做法 。 那么我能做些什么来做所有这些事情呢? 编辑/ srv开发中的代码 共享/ srv / myapp /用户上传跨不同版本 让Dockerfile下载代码。 在Docker之外做“git clone”或者“git pull”会击败Docker的目的。 除此之外,还有一些我无法在主机上运行的东西,比如数据库迁移或其他特定于应用程序的脚本。 有没有办法做一个反向卷装? 我的意思是让容器覆盖主机,而不是相反。 我想在运行容器的守护进程之前,可以将/ srv拷贝到/srv.deployment-copy。 然后,当我运行守护进程时,检查/srv.deployment-copy是否存在,并将所有内容都复制回/ srv。 这样我可以使用/ srv作为卷,并且仍然能够使用Dockerfile将代码部署到它。 我已经使用所有docker命令的别名,所以自动化这不会是一个问题。 你怎么看?
Docker和OpenShift都是实现PaaS服务的框架。 他们如何比较build筑和function?
我可以在Dockerfile的CMD节中使用环境variables吗? 我想要做这样的事情: CMD ["myserver", "–arg=$ARG", "–memcache=$MEMCACHE_11211_TCP_ADDR:$MEMCACHE_11211_TCP_PORT"] 其中$ MEMCACHE_11211_TCP_ *将通过包含我的docker docker run命令的–link参数自动设置。 $ ARG可以由用户在运行时configuration,也可以通过“-e”参数来configuration? 这似乎并没有为我工作,似乎字面上通过string“$ ARG”例如。
据说docker不是虚拟机,容器直接在主机上运行。 但为什么容器需要一个基本的映像操作系统? 如果容器中的进程在基本映像操作系统上运行,则虚拟机和docker之间的区别是什么(只有基本映像操作系统可以重新使用并保持为只读?) 为什么它比VM启动更快? 什么构成了基本的图像操作系统? 内核,rootfs还是两者?