我正在尝试更改图像的存储库名称:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
server latest d583c3ac45fd 26 minutes ago 685.5 MB
Run Code Online (Sandbox Code Playgroud)
因此,我想将名称更改server
为类似myname/server
:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/server latest d583c3ac45fd 26 minutes ago 685.5 MB
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我不确定我是否在这里误解了一些东西,但似乎只能通过从图像创建一个新容器来设置端口映射.有没有办法将端口映射分配给现有的Docker容器?
通常,使用用户root运行docker容器.我想使用不同的用户,使用docker的USER指令没问题.但是这个用户应该能够在容器内使用sudo.缺少此命令.
这是一个简单的Dockerfile用于此目的:
FROM ubuntu:12.04
RUN useradd docker && echo "docker:docker" | chpasswd
RUN mkdir -p /home/docker && chown -R docker:docker /home/docker
USER docker
CMD /bin/bash
Run Code Online (Sandbox Code Playgroud)
运行此容器,我使用用户'docker'登录.当我尝试使用sudo时,找不到该命令.所以我尝试使用在我的Dockerfile中安装sudo包
RUN apt-get install sudo
Run Code Online (Sandbox Code Playgroud)
这导致无法找到包sudo
我一直在使用这个Docker-image tutum/wordpress来演示一个Wordpress网站.最近我发现图像使用了MySQL数据的卷.
所以问题是:如果我想备份和恢复容器,我可以尝试提交图像,然后删除容器,并从提交的图像创建一个新容器.但是,如果我这样做,卷将被删除,我的所有数据都将消失.
必须有一些简单的方法来备份我的容器及其卷数据,但我无法在任何地方找到它.
是否可以备份正在运行的Docker容器?export
命令是否适合这样做?
我尝试添加到PATH
文件中~/.profile
,/etc/profile
如下所示.
PATH = $PATH:/required/path
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.然后我尝试添加行显示,这也不起作用.
export PATH
Run Code Online (Sandbox Code Playgroud)
即使在重新启动容器和主机之后它也无法工作.
假设我正在启动大量基于相同docker镜像的docker容器.这意味着每个docker容器都运行相同的应用程序.可能是应用程序足够大并且需要大量硬盘驱动器内存的情况.
码头工人如何处理它?
是否所有docker容器都共享docker镜像中定义的静态部分?
如果不是,将应用程序复制到用于运行docker容器的机器上的某个目录并为每个docker容器安装此app目录是否有意义?
问题:任何构建,具有依赖于centos,ubuntu或debian的Dockerfile都无法构建.
环境:我有一台Mac OS X,运行VMWare,客户端为Ubuntu 14.04,运行Docker:
mdesales@ubuntu ~ $ sudo docker version
Client version: 1.1.2
Client API version: 1.13
Go version (client): go1.2.1
Git commit (client): d84a070
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.1
Git commit (server): d84a070
Run Code Online (Sandbox Code Playgroud)
行为:使用"docker build"无法下载包.这里有这样Dockerfile的例子:https://github.com/Krijger/docker-cookbooks/blob/master/jdk8-oracle/Dockerfile,https://github.com/ottenhoff/centos-java/blob/master/Dockerfile
我知道我们可以使用--dns运行容器,但这是在构建期间.
CENTOS
从centos RUN yum安装abc
UBUNTU
从ubuntu RUN apt-get install abc
用户已经报告可能是DNS配置问题,其他人和配置已将Google的DNS服务器注释掉.
Step 2 : RUN yum install -y curl; yum upgrade -y; yum update -y; yum clean all
---> Running in 5f11b65c87b8
Loaded …
Run Code Online (Sandbox Code Playgroud) 我按照指令https://registry.hub.docker.com/_/mysql/来提取图像并运行一个运行mysql服务器的容器.容器在后台运行,我会运行一些命令.哪个是连接容器并从命令行执行此命令的最佳方法?
我正在尝试了解连接到主机并连接到Docker容器内的应用程序的网络数据包所发生的情况.
如果它是一个经典的虚拟机,我知道到达主机的数据包将由虚拟机管理程序(比如VMware,VBox等)传输到虚拟机的虚拟网卡,并从那里通过客户机操作系统的TCP/IP堆栈传输,终于达到了申请.
在Docker的情况下,我知道主机上的数据包从主机的网络接口转发到docker0
网桥,该网桥连接到容器内veth
虚拟接口上的一对eth0
.但那之后呢?由于所有Docker容器都使用主机内核,假设数据包是由主机内核的TCP/IP堆栈处理的,这是正确的吗?如果是这样,怎么样?
我真的想阅读一个详细的解释(或者如果你知道一个资源可以随意链接它)关于真正发生的事情.我已经仔细阅读了这个页面,但它没有说明一切.
在此先感谢您的回复.