docker入坑學習 第一章docker快速認識
阿新 • • 發佈:2018-12-11
快速瞭解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語法由兩部分構成,註釋和命令列+引數
- #這是註釋,下面是命令列
- 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 用於設定環境變數