多人開發(fā)必備:Docker快速入門&速查手冊
前言
針對這一開發(fā)中的痛點,虛擬容器技術(shù)就應(yīng)運而生了。這項技術(shù)將所有需要的庫都打包成一個大的開發(fā)環(huán)境,所有人基于這個環(huán)境進行開發(fā),環(huán)境快速對齊。大家可以打包自己的應(yīng)用到容器中,再遷移到其他機器的虛擬容器中,實現(xiàn)快速部署。
下文將介紹一種虛擬容器應(yīng)用:Docker,包括基本概念,常用命令和如何構(gòu)建自己的Docker容器。
Docker入門介紹
Docker是虛擬容器技術(shù)的一種具體實現(xiàn)。打個比方,Docker就是一個軟件集裝箱化平臺,就像船只、火車、卡車運輸集裝箱而不論其內(nèi)部的貨物一樣,軟件容器充當軟件部署的標準單元,其中可以包含不同的代碼和依賴項。按照這種方式容器化軟件,開發(fā)人員和 IT 專業(yè)人員只需進行極少修改或不修改,即可將其部署到不同的環(huán)境,如果出現(xiàn)的故障,也可以通過鏡像,快速恢復(fù)服務(wù)。
相比VM虛擬機,Docker更加靈活,占用的資源也更少,他們的區(qū)別如下圖所示。
圖:VM和Docker的設(shè)計架構(gòu)區(qū)別
下圖詳細展示了Docker的主要架構(gòu)和一些基礎(chǔ)概念。我們可以看到Docker中有這樣幾個概念:
Dockerfile
image
container
實際上你可以簡單的把image理解為可執(zhí)行程序,container就是運行起來的進程。那么寫程序需要源代碼,那么“寫”image就需要dockerfile,dockerfile就是image的源代碼,docker就是"編譯器"。
因此我們只需要在dockerfile中指定需要哪些程序、依賴什么樣的配置,之后把dockerfile交給“編譯器”docker進行“編譯”,也就是docker build命令,生成的可執(zhí)行程序就是image,之后就可以運行這個image了,這就是docker run命令,image運行起來后就是docker container。
具體的使用方法就不在這里贅述了,大家可以參考docker的官方文檔,那里有詳細的講解。

Docker常用命令
Docker的安裝比較方便,執(zhí)行以下指令。
sudo wget -qO- https://get.docker.com | shsudo usermod -aG docker usernamexxx
這里總結(jié)了Docker使用中的常用命令,可以嘗試自己在服務(wù)器上操作,注意區(qū)分image和container。
docker?pull #?獲取docker?imagedocker run -p #運行container 端口映射docker run -v [local path]:[docker 內(nèi)部目錄]# 目錄掛載docker commit # 保存改動為新的imagedocker build # 創(chuàng)建docker imagedocker create #docker attach # 進入容器(不是進入image)docker rm [docker id] # 刪除docker containerdocker rmi [docker image id] # 刪除docker imagedocker ps # 查看正在運行的dockerdocker ps -a # 查看docker運行的歷史docker images # 查看本地已有的docker鏡像docker inspect # 查看image內(nèi)部具體信息docker cp # 在host和container之間拷貝文件docker stop # 停止containerdocker search # 在遠程倉庫docker hub搜索鏡像docker login # 登錄docker?hubdocker push # 將本地鏡像上傳到docker hub
構(gòu)建一個自己的Docker
有時候別人提供的Docker image中不完全是我們需要的開發(fā)環(huán)境,可以基于別人的image開發(fā)自己的Docker容器。
FROM # 設(shè)置基礎(chǔ)鏡像MAINTAINER # 著名文件作者/維護者RUN # 執(zhí)行命令COPY # 拷貝文件ADD?#?添加文件ENTRYPOINT #?給container指定執(zhí)行入口EXPOSE?#?暴露端口CMD?#?執(zhí)行命令,給container指定執(zhí)行入口WORKDIR?#?指定運行命令的路徑ENV # 為container里面環(huán)境的設(shè)置環(huán)境變量USER # 指定執(zhí)行container的用戶VOLUME # 指定container執(zhí)行時掛在的卷
參考文獻
搭建一個自己想要的docker:https://zhuanlan.zhihu.com/p/346450809
什么是Docker?看這一篇干貨文章就夠了:https://zhuanlan.zhihu.com/p/187505981
Docker入門教程:
https://www.imooc.com/learn/867
Docker 實戰(zhàn)總結(jié):
https://zhuanlan.zhihu.com/p/188544516
linux查看正在運行的容器,說說Docker 容器常用命令:https://blog.csdn.net/weixin_39568597/article/details/116654367
