![](/img/trans.png)
[英]Download failure within official ubuntu docker images on Ubuntu 14.04 host
[英]How to install multiple ubuntu images in the same host via docker?
我需要通过主机中的数据分析软件来运行多线程。 但是我发现如果直接使用多线程,则得出的结果会相互冲突。 可能是因为共享了公共参数。
因此,我想多次安装该软件并同时运行这些软件。 我可以通过拉拉ubuntu
docker run -it ubuntu bash
并在此ubuntu中安装软件。
但是如何多次从存储库中拉ubuntu? 我需要真正安装在主机中的其他Ubuntu。 现在,一旦安装了第一个ubuntu,如果我再次使用docker run -it ubuntu bash
,只会生成一个新映像,而不是真正占用磁盘空间的系统。
容器是分开的,但是如果在主机中仅安装一次该软件,如何避免共参数问题? 如何在主机中真正安装该软件5次?
您可以:
为要安装的每组应用程序创建一个Dockerfile并构建一个命名/标记映像。 这将更加整齐并且易于复制。
或者,命名要创建的容器:
docker运行--name app1 ubuntu / bin / bash
泊坞窗运行--name app2 ubuntu / bin / bash
然后,您可以使用commit保存它们的图像。 如果需要,还可以启动,停止并输入。
Docker / OCI映像是不可变的对象。 将图像作为容器运行不会修改该图像,容器会将任何文件系统更改置于该图像之上。 您运行的每个容器都是一个单独的实体,并在其自身的文件系统更改下以其自己的名称空间运行。 每个容器都有唯一的ID参考。
在大多数情况下,您将创建一个Dockerfile
来描述您在ubuntu之上所需的所有常见软件安装和配置。
FROM ubuntu:16.04
RUN apt-get update && apt-get install mydeps
您构建并标记的对象
$ docker build -t me/myapp .
然后,无论何时运行映像,都会创建一个与映像分开的新容器,并与正在运行的任何其他容器分开:
$ docker run -ti me/myapp bash
root@28cfd02a55b1:/# echo test > /test
root@28cfd02a55b1:/# cat /test
test
在第二个容器中,文件将不存在
$ docker run -ti me/myapp bash
root@39584fb744a9:/# cat /test
cat: /test: No such file or directory
在主机上,您可以看到带有docker ps
每个容器实例:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39584fb744a9 me/myapp "bash" 21 seconds ago Up 20 seconds kind_brattain
28cfd02a55b1 me/myapp "bash" About a minute ago Up About a minute blissful_thompson
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.