區別:COPY指令不支援從遠端URL取得資源,只能從執行docker build所在的主機上讀取資源並複製到映像中;而ADD指令支援從遠端URL取得資源,可以透過URL從遠端伺服器讀取資源並複製到鏡像中。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Dockerfile中的COPY指令和ADD指令都可以將主機上的資源複製或加入到容器映像中,都是在建置映像的過程中完成的。
DockerFile的ADD和COPY的差異
#COPY指令和ADD指令的唯一區別在於:是否支援從遠端URL取得資源。
COPY指令只能從執行docker build所在的主機上讀取資源並複製到映像中。而ADD指令也支援透過URL從遠端伺服器讀取資源並複製到鏡像中。
相同需求時,建議使用COPY指令。 ADD指令更擅長讀取本地tar檔案並解壓縮。
ADD與COPY指令
COPY同ADD的語法一致,複製拷貝檔。
ADD
複製新檔案、目錄或遠端檔案 URL
每個都
新增所有以「hom」開頭的檔案:
ADD hom* /mydir/
在下面的範例中,?被替換為任何單一字符,例如「home.txt」。
ADD hom?.txt /mydir/
ADD指令有以下的優越性:
#1、如果來源路徑是個文件,且目標路徑是以/ 結尾,則docker會把目標路徑當作一個目錄,會把來源檔案拷貝到該目錄下。
如果目標路徑不存在,則會自動建立目標路徑。2、如果來源路徑是個文件,且目標路徑是不是以 / 結尾,則docker會把目標路徑當作一個文件。
如果目標路徑不存在,會以目標路徑為名創建一個文件,內容同源文件;
如果目標文件是個存在的文件,會用源文件覆蓋它,當然只是內容覆蓋,文件名還是目標檔名。
如果目標檔案實際上是存在的目錄,則會來源檔案拷貝到該目錄下。請注意,這種情況下,最好顯示的以 / 結尾,以避免混淆。3、如果來源路徑是目錄,且目標路徑不存在,則docker會自動以目標路徑建立目錄,把來源路徑目錄下的檔案拷貝進來。
如果目標路徑是個已經存在的目錄,則docker會把來源路徑目錄下的檔案拷貝到該目錄下。4、如果來源檔案是歸檔檔案(壓縮檔案),則docker會自動幫解壓縮。
上面的優點也是ADD劣勢
推薦學習:《docker影片教學》
以上是docker中copy和add指令有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在Ubuntu、CentOS和Debian上安裝和使用Docker的方法各有不同。 1)Ubuntu:使用apt包管理器,命令為sudoapt-getupdate&&sudoapt-getinstalldocker.io。 2)CentOS:使用yum包管理器,需添加Docker倉庫,命令為sudoyuminstall-yyum-utils&&sudoyum-config-manager--add-repohttps://download.docker.com/lin

在Linux上使用Docker可以提高開發效率和簡化應用部署。 1)拉取Ubuntu鏡像:dockerpullubuntu。 2)運行Ubuntu容器:dockerrun-itubuntu/bin/bash。 3)創建包含nginx的Dockerfile:FROMubuntu;RUNapt-getupdate&&apt-getinstall-ynginx;EXPOSE80。4)構建鏡像:dockerbuild-tmy-nginx.。 5)運行容器:dockerrun-d-p8080:80

Docker在Linux上可以簡化應用部署和管理。 1)Docker是容器化平台,將應用及其依賴打包進輕量、可移植容器。 2)在Linux上,Docker利用cgroups和namespaces實現容器隔離和資源管理。 3)基本用法包括拉取鏡像和運行容器,高級用法如DockerCompose可定義多容器應用。 4)調試常用dockerlogs和dockerexec命令。 5)性能優化可通過多階段構建減小鏡像大小,保持Dockerfile簡潔是最佳實踐。

Docker是一種基於Linux容器技術的工具,用於打包、分發和運行應用,提升應用的可移植性和可擴展性。 1)通過dockerbuild和dockerrun命令,可以構建和運行Docker容器。 2)DockerCompose用於定義和運行多容器的Docker應用,簡化微服務管理。 3)使用多階段構建可以優化鏡像大小,提升應用啟動速度。 4)查看容器日誌是調試容器問題的有效方法。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境