簡體   English   中英

如何通過Docker在同一主機上安裝多個ubuntu鏡像?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM