1. 程式人生 > >docker入坑學習 第一章docker快速認識

docker入坑學習 第一章docker快速認識

快速瞭解docker命令

docker run

docker run 用於從映象建立一個新的容器,並執行一個命令

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

常用操作

操作 說明 示例
-d 後臺執行容器,並返回容器id docker run -d ubuntu
-t 為容器分配一個偽輸入終端,通常與i一同使用 docker run -ti ubuntu
-i 以互動模式執行容器,通常與t一同使用 docker run -ti ubuntu
–name 為容器指定一個名字 docker run --name test ubuntu
–net 指定容器的網路連線型別,支援 bridge/host/none/container: 四種類型 docker run --net host ubuntu
-v 資料卷對映 docker run -v /home/dev/saas-web:/root ubuntu
-e 設定環境變數 docker run -e APP=app.jar ubuntu
-p 埠對映 docker run -p 8085:80 ubuntu

docker build

Usage: docker build [OPTIONS] PATH | URL | -

常用操作

操作 說明 示例
-f 指定dockerfile的位置 docker build -f /root/dev/dockerfile/test/Dockerfile .
-t 設定映象的tag docker build -t xxx/ss:v1 .

Dockerfile認識

Dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立一個新的映象.既然Dockerfile是一個指令碼,那就有Dockerfile指令碼語法. Dockerfile語法由兩部分構成,註釋和命令列+引數

  1. #這是註釋,下面是命令列
  2. command argument argument …

下面是命令列的介紹

  • FROM 該命令是Dockerfile是開始,用來定義使用哪個映象作為基礎映象來啟動構建流程.因此FROM必須是Dockerfile的第一個命令.

FROM <IMAGE>:<tag>

  • MAINTAINER 該命令用於宣告作者,可以放在Dockerfile的任意位置,建議放在FROM之後.
  • RUN 該命令用於指定當前映象中執行的指令.每一個RUN指令會在原先映象上生成新一層的映象
  • EXPOSE 該命令用於宣告容器會使用的埠,但並不會自動對映埠.想要開啟埠對映,須在docker run 的時候使用-p來開啟埠對映
  • CMD 該命令用於指定容器執行時的指令.
  • ENTRYPOINT 該命令同樣用於指定容器執行時的指令.下面對RUM,CMD,ENTRYPOINT做個比較
RUN CMD ENTRYPOINT
執行時間 映象構建的過程中執行 映象執行時執行 映象執行時執行
run時是否會覆蓋 因為執行在構建期間,肯定不會覆蓋啦 執行時會被docker run 中的command覆蓋 執行時不會被docker run 中的command覆蓋
Dockerfile中出現次數 可以多次出現,但每個命令會生成新的映象層 只能出現一次,如果有多個CMD命令,只有最後一個生效 只能出現一次,如果有多個ENTRYPOINT命令,只有最後一個生效
  • ADD 用於從宿主機或遠端url複製檔案到容器中,而且還可以自動解壓檔案.docker不推薦使用ADD從遠端獲取檔案可以使用curl或wget等下載檔案再使用
  • COPY 用與從宿主機複製檔案到容器.如果只是單純的複製檔案,推薦使用該命令.
  • WORKDIR 用於為後續的指令指定工作目錄
  • ENV 用於設定環境變數