天天看點

docker:從鏡像建立容器容器與鏡像的關系如何從鏡像建立容器可能遇到的問題

容器與鏡像的關系

容器是鏡像執行個體化而來,容器即程序,鏡像即檔案。一個鏡像可以啟動多個容器,鏡像類似于虛拟機中的隻讀模闆,屬于一個獨立的檔案系統。

docker也可以像虛拟機一樣,通過docker run/啟動、docker stop/停止、docker rm/删除,指令來控制容器啟動/停止/删除容器。

如何從鏡像建立容器

首先:

docker images

,擷取本地所有鏡像

docker:從鏡像建立容器容器與鏡像的關系如何從鏡像建立容器可能遇到的問題

例如我們要建立rabbitmq的容器,指令如下

docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq 80bd4b95a49d
           

其中的參數含義很顯然,-p 虛拟機端口:容器端口,是将虛拟機與容器的端口組成映射,當需要有多個端口映射時,就重複多少次。

docker:從鏡像建立容器容器與鏡像的關系如何從鏡像建立容器可能遇到的問題

如上圖,建立成功

啟動建立的容器:

可能遇到的問題

1.The container name “/xxxx” is already in use by container

此時:

docker ps -a
           

找到所有的容器,然後删除名稱重複的容器

docker rm xxxxxxxxx
           

xxxxxxxxx是容器的ID

2.端口被占用rror starting userland proxy: listen tcp 0.0.0.0:5672: bind: address already in use

通過如下指令檢視端口占用情況

netstat -tanlp
           
docker:從鏡像建立容器容器與鏡像的關系如何從鏡像建立容器可能遇到的問題

将對于程序編号7757殺死即可

sudo kill 7757