Docker學習筆記

2021-09-28 14:06:42 字數 3540 閱讀 1851

1.2 公升級docker

1.3 解除安裝docker

2 組成架構

3 映象倉庫

4 映象命令

5 容器命令

6 dockerfile

命令語法:

docker login [options] [server]

命令選項:

選項說明-u username

賬戶名-p password

賬戶密碼

命令示例:

# 登入到docker hub註冊伺服器中的個人倉庫(執行命令後根據提示輸入docker hub賬戶和密碼)

docker login

# 登入到registry.mind.cn註冊伺服器中的私有倉庫(執行命令後根據提示輸入賬戶和密碼)

docker login registry.mind.cn

指令語法:

# 語法一:

add [--chown=:] ... # 語法二:如果路徑中包含空格,則必須使用這種格式

add [--chown=:] ["",... ""]

指令說明:只有使用dockerfile構建linux容器的情況下才支援--chown選項,而構建windows容器的情況下不支援該選項。可以指定多個源位址,但如果它們是檔案或目錄,則它們會被視為基於構建映象的上下文的相對路徑。目標位址可以是絕對路徑,也可以是相對於workdir的相對路徑。在複製檔案或目錄時,如果包含特殊字元(如[和]),則需要按照golang規則轉義這些路徑,以防止將它們視為匹配模式。複製生成的所有檔案和目錄的uid和gid預設都是0,除非使用--chown選項指定使用者名稱、組名或uid、gid,如果指定了使用者名稱卻沒有指定組名,或指定了uid卻沒有指定gid,則使用uid的值作為gid的值。

指令示例:

# 把工作目錄下的所有以hom開頭的檔案全部都複製到/mydir/目錄下

add hom* /mydir/

# 把工作目錄下所有符合hom?.txt格式的檔案全部都複製到/mydir/目錄下

add hom?.txt /mydir/

# 把工作目錄下的test檔案複製到workdir/relativedir/目錄下

add test relativedir/

# 把工作目錄下的test檔案複製到/absolutedir/目錄下

add test /absolutedir/

# 把工作目錄下的arr[0].txt檔案複製到/mydir/目錄下。(特殊符號的轉換)

add arr[0].txt /mydir/

# 同時指定使用者名稱和組名

add --chown=55:mygroup files* /somedir/

# 只指定使用者名稱

add --chown=bin files* /somedir/

# 只指定uid(預設gid的值與uid的值相同)

add --chown=1 files* /somedir/

# 同時指定uid和gid

add --chown=10:11 files* /somedir/

指令語法:

# 語法一:

copy [--chown=:] ... # 語法二:如果路徑中包含空格,則必須使用這種格式

copy [--chown=:] ["",... ""]

指令說明:只有使用dockerfile構建linux容器的情況下才支援--chown選項,而構建windows容器的情況下不支援該選項。可以指定多個源位址,但如果它們是檔案或目錄,則它們會被視為基於構建映象的上下文的相對路徑。目標位址可以是絕對路徑,也可以是相對於workdir的相對路徑。在複製檔案或目錄時,如果包含特殊字元(如[和]),則需要按照golang規則轉義這些路徑,以防止將它們視為匹配模式。複製生成的所有檔案和目錄的uid和gid預設都是0,除非使用--chown選項指定使用者名稱、組名或uid、gid,如果指定了使用者名稱卻沒有指定組名,或指定了uid卻沒有指定gid,則使用uid的值作為gid的值。

指令示例:

# 把工作目錄下的所有以hom開頭的檔案全部都複製到/mydir/目錄下

copy hom* /mydir/

# 把工作目錄下符合hom?.txt格式的檔案全部都複製到/mydir/目錄下

copy hom?.txt /mydir/

# 把工作目錄下的test檔案複製到workdir/relativedir/目錄下

copy test relativedir/

# 把工作目錄下的test檔案複製到/absolutedir/目錄下

copy test /absolutedir/

# 把工作目錄下的arr[0].txt檔案複製到/mydir/目錄下。(特殊符號的轉換)

copy arr[0].txt /mydir/

# 同時指定使用者名稱和組名

copy --chown=55:mygroup files* /somedir/

# 只指定使用者名稱

copy --chown=bin files* /somedir/

# 只指定uid(預設gid的值與uid的值相同)

copy --chown=1 files* /somedir/

# 同時指定uid和gid

copy --chown=10:11 files* /somedir/

指令語法:

# shell格式:命令會在shell中執行,linux中預設是 /bin/sh -c,windows中預設是 cmd /s /c

run # exec格式:

run ["executable", "param1", "param2"]

指令說明:與shell格式不同,exec格式不會呼叫shell命令,所以shell處理不會發生,例如:run [「echo」,「$home」] 不會對 $home 執行變數替換;如果要進行shell處理,可以使用shell格式或使用exec格式並直接執行shell,例如:run [「/bin/bash」、「-c」、「echo $home」],當使用exec格式並直接執行shell時,與shell格式一樣,執行環境變數擴充套件的是shell,而不是docker。exec格式會被解析為json陣列,所以必須使用雙引號,而不是單引號。json格式中需要轉義反斜槓,否則會報錯,例如:run [「c:\windows\system32\tasklist.exe」]。

指令示例:

# shell格式示例一:使用 \ 將乙個連續的shell執行指令寫到多行中,並指定義shell為 /bin/bash

run /bin/bash -c 'source $home/.bashrc; \

echo $home'

# shell格式示例二:將乙個連續的shell執行指令寫到同一行中(與shell格式示例一等價)

run /bin/bash -c 'source $home/.bashrc; echo $home'

# exec格式示例:

run ["/bin/bash", "-c", "echo hello"]

docker學習筆記

1 docker依賴於linux核心,無法直接安裝在windows環境中,否則需要安裝docker toolbox 2 相關操作 docker create 建立乙個容器但是不啟動它 docker run 建立並啟動乙個容器 docker stop id 停止容器執行,傳送訊號sigterm doc...

Docker學習筆記

一 docker是什麼 docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。就相當於書包可以裝書,水杯可以盛水。二 docker解決了什麼問題 我本地沒有問題啊 本地和線上的環境不一致問題,哪個哥們又寫死迴圈了 其他專案的出錯不影響你本身的專案 雙十一伺服器...

docker學習筆記

1.怎麼給執行中的docker容器新增新的埠 解決 1 獲得容器ip docker inspect container name grep ipaddress 2 iptable埠 將容器的8000埠對映到主機的8001埠 iptables tnat adocker ptcp dport 8001 ...