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 寫的真的很好,贊,受益匪淺