關於我理解的Docker容器

       Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。--這是你在百度的時候會得到關於Docker的定義,在你有一定基礎的情況下,你來理解這句話,也是籠統的,,包括我自己,看完這句話,還是想問,這到底是個什麼呢?那就一步步來了解學習吧。

一、在Linux上的部署

在部署之前先來理解幾個概念

鏡像:就是我們windows裏的ISO文件,就是一個打包好的東西,也類似於GHOST這種工具包

容器:將鏡像啓動後,它會生產一個容器,我們可以在容器裏添加新的組件,然後生產新的鏡像!

如果你的linux服務器在yum install時提示源不對或者有問題,可以參考

wget -P /etc/yum.repos.d  http://mirrors.aliyun.com/repo/Centos-7.repo  ##下載最新的yum源

1、安裝服務  yum install docker

systemctl start docker.service      ###啓動docker服務

systemctl enable docker.service  ###設置docker自動啓動服務

2、驗證並測試

docker ps  ##查看容器

docker info ##檢查Docker的安裝是否正確,如果沒有找到此命令,則表示Docker沒有正確安裝

docker pull busybox   ## 拉取一個預建的鏡像  

sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")  ###

以後臺進程的方式運行hello docker;sample_job命令會隔一秒打印一次Docker,使用Docker logs可以查看輸出。如果沒有起名字,那這個job會被分配一個id,以後使用命令例如Docker logs查看日誌會變得比較麻煩。因爲id比較長

docker logs $sample_job   ##查看結果 

 

docker stop $sample_job   ##停止名爲sample_job的容器,我的理解,下面的那一串字符就是它的ID

docker restart $sample_job  ##重啓該容器

docker rm $sample_job   ##移除該容器,但是在移除之前必須先將其停止

docker images    ##查看所有鏡像的列表

 

 2、安裝鏡像使用

sudo docker pull microsoft/dotnet  #下載dotnet的鏡像

docker images   ###查看一下這個鏡像

docker run -it --name mycoreContainer 08663b8eaa01###通過鏡像,運行一個容器,後面的image id 需要與你需要的鏡像對應

運行完上面了之後,在運行的時候會提示已經存在這個容器,在你想要重新進入這個容器,你需要使用

docker attach  mycoreContainer  ##進入你創建好的容器內,退出一個容器使用  exit ;進入容器後,可以進行基於環境的代碼編寫

docker ps -a  ##查看剛纔建立的容器

 

docker commit -a "root" -m "netcore a image" 06bd8d7cbfee netcore:v1  ##從容器創建一個新的鏡像,root處是提交者的名字

上面這個操作的含義是:將某一個容易重新打包成一個新的鏡像,故上面的id是CONTAINER ID 而不是Image Id

docker rm $(docker ps -a -q)  ##刪除所有未運行 Docker 容器;都刪除了,因爲都沒有在運行

docker rmi $(docker images -q)   ###刪除所有鏡像,額,都刪了

這個是我在我的理解與學習下,同時參考前輩的博文,整理出來的基於linux的docker安裝,有不足的地方,希望大家指出來

PS.該博文參考 https://www.cnblogs.com/lori/p/6680380.html 寫的真的很好,贊,受益匪淺

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章