我一直在重读Docker文档,试图了解Docker和完整VM之间的区别.它如何设法提供完整的文件系统,隔离的网络环境等,而不是那么重?
为什么将软件部署到Docker映像(如果这是正确的术语)比简单地部署到一致的生产环境更容易?
我使用Ubuntu进行开发和部署,并且需要创建一个隔离的环境.
我正在考虑为此目的使用Vagrant或Docker.有哪些优点和缺点,或者这些解决方案如何比较?
是什么之间的差异COPY
,并ADD
在Dockerfile命令,当我将使用一个比其他?
COPY <src> <dest>
Run Code Online (Sandbox Code Playgroud)
COPY指令将从
<src>
路径中复制新文件并将其添加到容器的文件系统中<dest>
ADD <src> <dest>
Run Code Online (Sandbox Code Playgroud)
ADD指令将从
<src>
路径中复制新文件并将其添加到容器的文件系统中<dest>
.
在Dockerfiles中有两个看起来与我类似的命令:CMD
和ENTRYPOINT
.但是我猜它们之间存在着一种(微妙的?)差异 - 否则对于同样的事情来说两个命令就没有任何意义.
文档说明了 CMD
CMD的主要目的是为执行容器提供默认值.
并为ENTRYPOINT
:
ENTRYPOINT可帮助您配置可作为可执行文件运行的容器.
那么,这两个命令之间的区别是什么?
我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理本身上安装所有运行时和库.为了实现这一点,我需要将容器内部构建的构建工件复制回主机.
那可能吗?
我正在尝试为我们使用的Docker容器构建备份和还原解决方案.
我有我创建的Docker基本映像ubuntu:base
,并且不希望每次都使用Docker文件重建它以向其添加文件.
我想创建一个从主机运行的脚本,并使用ubuntu:base
Docker镜像创建一个新容器,然后将文件复制到该容器中.
如何将文件从主机复制到容器?
是否有一个命令可以在创建新容器后运行以从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我想推出自己的代码部署和容器配置脚本.
如何在不使用存储库的情况下将Docker镜像从一台计算机传输到另一台计算机,无论是私有还是公共?
我习惯在VirtualBox中播放并创建自己的图像,当它完成后,我尝试部署到其他机器上以实现真正的用途.
由于它基于自己的映像(如Red Hat Linux),因此无法从Dockerfile重新创建它.
我可以使用简单的命令吗?或另一种解决方案
看来save/export可以达到类似的目的,看看Docker中保存和导出有什么区别?,我更喜欢save
我的情况下的命令.
所以我在Docker容器中运行了一个Nginx,我在localhost上运行了一个mysql,我想从我的Nginx中连接到MySql.MySql在localhost上运行,而不是将端口暴露给外部世界,所以它绑定在localhost上,而不是绑定在机器的ip地址上.
有没有办法从这个docker容器中连接到这个MySql或localhost上的任何其他程序?
这个问题与我是否应该关注多余的,非运行的Docker容器有关?.
我想知道如何删除旧容器.将docker rm 3e552code34a
让你删除一个,但我有很多了.docker rm --help
不提供选择选项(如全部或图像名称).
也许有一个存储这些容器的目录,我可以手动轻松删除它们?