<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          多人開發(fā)必備:Docker快速入門&速查手冊

          共 2345字,需瀏覽 5分鐘

           ·

          2021-10-21 21:58

          前言

          通常,我們的開發(fā)環(huán)境中需要配置各種庫,這會導(dǎo)致大家在開發(fā)過程中相互之間的配置庫版本不一致,程序員A開發(fā)的程序在程序員B的環(huán)境下運行不起來,新人C不知道自己應(yīng)該配置A的環(huán)境還是B的環(huán)境。


          針對這一開發(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?image
          docker run -p #運行container 端口映射
          docker run -v [local path]:[docker 內(nèi)部目錄]# 目錄掛載
          docker commit # 保存改動為新的image
          docker build # 創(chuàng)建docker image
          docker create #
          docker attach # 進入容器(不是進入image)
          docker rm [docker id] # 刪除docker container
          docker rmi [docker image id] # 刪除docker image
          docker ps # 查看正在運行的docker
          docker ps -a # 查看docker運行的歷史
          docker images # 查看本地已有的docker鏡像
          docker inspect # 查看image內(nèi)部具體信息
          docker cp # 在host和container之間拷貝文件
          docker stop # 停止container
          docker search # 在遠程倉庫docker hub搜索鏡像
          docker login # 登錄docker?hub
          docker 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


          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩av手机在线 日韩va在线观看 | 夜夜的啪网站 | 免费黄片网站在线观看 | 日日夜夜免费看三级片 | 亚洲无码中文字幕视频 |