Docker常用命令就該這麼學!

2020-12-10 騰訊網

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。Docker 是一個用於開發,交付和運行應用程式的開放平臺。Docker 使您能夠將應用程式與基礎架構分開,從而可以快速交付軟體。

藉助 Docker,您可以與管理應用程式相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。Docker解決開發和生產環境不一致的問題、多用戶操作Linux系統相互影響的問題、用戶量暴增導致運維成本過高的問題、安裝軟體成本高等問題。

一、下載、安裝、測試Docker

1.1:下載Docker的依賴環境:

yum -y install yum-utils device-mapper-persistent-data lvm2

1.2:設置下載Docker 的鏡像源:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3:安裝Docker

(1)yum makecache fast

(2)yum -y install docker-ce

1.4:啟動並設置為開機自動啟動,測試

(1)啟動Docker服務:systemctl start docker

(2)設置開機自動啟動:systemctl enable docker

(3)測試:docker run hello-world

二、Docker容器的操作

2.1:運行容器:docker run 鏡像的標識 | 鏡像名稱 [:tag]

(1)docker run -d -p 宿主機埠:容器埠 --name 容器名稱 鏡像的標識 | 鏡像名稱 [:tag]

-d:後臺運行容器

-p:宿主機埠:容器埠為了映射當前Linux和容器的埠

--name:指定容器的名稱

2.2:查看正在運行的容器:docker ps [-qa]

(1)-a:查看包括沒有運行的全部容器

(2)-q:只查看容器得到標識

2.3:查看容器的日誌:docker logs -f 容器id

(1)-f:滾動查看日誌的最後幾行

2.4:進入到容器內部:docker exec -it 容器id bash (execute)

2.5:刪除容器:docker rm 容器id(刪除容器前需要停止容器)

(1)停止指定的容器:docker stop 容器id

(2)停止全部的容器:docker stop $(docker ps -qa)

(3)刪除指定的容器:docker rm 容器id

(4)刪除全部的容器:docker rm $(docker ps -qa)

2.6:啟動容器:docker start 容器id

三、Docker的中央倉庫、鏡像操作

3.1:Docker官方的中央倉庫,鏡像最全,下載速度較慢。

3.2:國內鏡像網站:網易蜂巢、daoCloud。

3.3:公司內部採取私服的方式拉取鏡像。

3.4:鏡像的操作:docker pull 鏡像名稱 [:tag]

(1)docker pull daocloud.io/library/tomcat:8.5.16-jre8

3.5:查看全部本地的鏡像:docker images

3.6:刪除本地鏡像:docker rmi 鏡像的標識(IMAGE ID)

3.7:鏡像的導入導出(不規範):

(1)將本地的鏡像導出:docker save -o 導出的路徑 鏡像id

(2)加載本地的鏡像文件:docker load -i 鏡像文件

(3)修改鏡像名稱:docker tag 鏡像id 新鏡像名稱:版本

3.8:創建一個Dockerfile文件,指定自定義鏡像信息。

3.9:Dockerfile文件中常用的內容:

(1)from:指定當前自定義鏡像依賴的環境

(2)copy:將相對路徑下的內容複製到自定義鏡像中

(3)workdir:聲明鏡像的默認工作目錄

(4)cmd:需要執行的命令

3.10:將Dockerfile和相應文件拖拽到Linu系統中,通過Docker命令製作鏡像:docker build -t 鏡像名稱 [:tag]

四、數據卷的使用

4.1:為部署SSM工程,使用cp命令將宿主機內的ssm.war複製到容器內部使用。不推薦在容器內部文件進行修改操作。

4.2:數據卷:將宿主機的目錄映射到容器的一個目錄中。

4.3:在宿主機中操作目錄內容,容器內映射的文件也隨之改變。

4.4:創建數據卷:docker volume create 數據卷名稱

(1)創建數據卷之後,默認目錄存放在 /var/lib/docker/volumes/數據卷名稱/_data

4.5:查看數據卷的詳細信息:docker volume inspect 數據卷名稱

4.6:查看全部數據卷:docker volume ls

4.7:刪除數據卷:docker volume rm 數據卷名稱

4.8:應用數據卷

(1)當映射的數據卷不存在時,Docker會自動創建:docker run -v 數據卷名稱:容器內部的路徑 鏡像id。

(2)指定一個路徑作為數據卷的存放位置:docker run -v 路徑:容器內部的路徑 鏡像id。

相關焦點

  • 雲計算核心技術Docker教程:docker-compose build/pull命令介紹
    然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。,本文主要介紹docker-compose build和pull命令。命令格式:docker-compose pull [options] [SERVICE...]拉取服務依賴的鏡像。
  • 雲計算核心技術Docker教程:Docker Compose的restart和rm命令詳解
    Docker-Compose restart命令可以重新啟動所有已停止並正在運行的服務,Docker-Compose rm命令可以刪除已經停止的容器,如果服務在運行,需要先docker-compose stop 停止容器。
  • 雲計算核心技術Docker教程:docker-compose命令up,run以及start...
    通常,您需要docker-compose up。使用up啟動或重新啟動所有定義的服務docker-compose.yml。該docker-compose up命令匯總每個容器的輸出(本質上是docker-compose logs -f)。當命令退出時,所有容器都將停止。
  • 阿里華為Dockerfile命令規範及最佳實踐
    3 RUN用於執行後面跟著的命令行命令。有以下倆種格式:Shell格式RUN apt-get install -y vimCMD echo "hello docker"ENTRYPOINT echo "hello docker"Dockerfiledocker build -t javaedge/centos-shell
  • 雲計算核心技術Docker教程:rm/rmi命令詳解
    在docker客戶端命令行中我們可以使用rm刪除一個或多個容器,使用rmi刪除本地一個或多少鏡像。示例:docker rm :刪除一個或多個容器。例如,強制刪除容器 db01、db02,命令如下:$ docker rm -f db01 db02移除容器 nginx01 對容器 db01 的連接,連接名 db:$ docker rm -l db刪除容器
  • 雲計算核心技術Docker教程:pull/push命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用pull從鏡像倉庫中拉取或者更新指定鏡像,使用push將本地的鏡像上傳到鏡像倉庫。示例:docker pull : 從鏡像倉庫中拉取或者更新指定鏡像語法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]OPTIONS說明:
  • 雲計算核心技術Docker教程:Docker Compose的pull和push命令詳解
    Docker-Compose pull命令可以拉取docker-compose.yml或者docker-stack.yml文件中定義的服務關聯的鏡像,Docker-Compose push命令可以將服務鏡像推送到registry/repository中。
  • Docker 入門教程
    Docker 的官方倉庫 Docker Hub 是最重要、最常用的 image 倉庫。此外,出售自己製作的 image 文件也是可以的。注意,指定了CMD命令以後,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會覆蓋CMD命令。現在,啟動容器可以使用下面的命令。
  • docker下高並發和高可用之docker swarm使用
    ,操作步驟參考Linux下安裝和使用Docker安裝完,使用命令sudo systemctl start docker啟動docker,再通過命令docker version查看docker版本信息利用docker swarm 命令來指定其中一臺虛擬機為docker的Manager管理機docker swarm init --advertise-addr
  • 【泡泡Docker樂園】手把手帶你走進Docker世界
    (C1)拉取(pull)鏡像的命令為:$ - docker pull$USER_ID/$IMAGE_NAME:$TAG其中,$USER_ID是發布項目的用戶名或者組織名,是一個可選項,通常我們以用戶的ID或者組織ID進行命名。$IMAGE_NAME是項目名稱,是必選項。
  • Docker-compose實戰
    各位小夥伴們,我們前面的篇文章分享了、docker的基礎知識點、如何編寫一個Dockerfile、docker網絡是怎麼回事、如何編寫docker-compose.yml文件。已經為本文做好了充分的鋪墊。那麼這邊文章就和小夥本們分享如何將你自己的微服務項目進行服務的編排。
  • 微服務部署到docker中
    可以看到項目根目錄下新增一個名為Dockerfile的文件6.通過Xftp將項目從Windows下的磁碟位置拷貝到Linux的root目錄下二、Linux下通過Docker構建應用1.通過Xshell連接上Linux虛擬機,進入到項目目錄下,然後通過docker
  • 雲計算核心技術Docker教程:Docker Compose指定單個compose文件
    docker-compose可以使用該-f標誌通過命令行或通過在外殼程序或環境文件中設置COMPOSE_FILE環境變量來指定不在當前目錄中的Compose文件的路徑。
  • 我們為FreeSWITCH做了一個免費的 Docker
    https://www.runoob.com/docker/windows-docker-install.html  https://www.runoob.com/docker/ubuntu-docker-install.html  https://www.runoob.com/docker/macos-docker-install.html
  • Docker 容器的網絡
    在任何完成安裝的 Docker 中將會自動包含有下面 3 個網絡驅動,你可以通過下面的命令來列表出來:$ docker network lsNETWORK ID NAME DRIVER18a2866682b8
  • 雲計算核心技術Docker教程:Docker Swarm 使用
    docker@swarm-manager:~$ docker service create --replicas 1 --name helloworld alpine ping docker.com查看 helloworld 服務運行在哪個節點上,可以看到目前是在 swarm-worker1 節點:
  • Windows下通過DockerToolbox安裝Docker
    Quickstart Terminal圖標,將會啟動一個終端,但是會遇到下面的情形,如下圖所示:12、此時我們將電腦網路斷開,然後重新打開Docker Quickstart Terminal,等待一下,然後再重新打開網絡,它會配置Docker Toolbox,當配置完成後,我們將會看到啟動成功的畫面,如下圖所示:這個終端是運行在bash環境下的,而不是標準的windows命令行
  • 《Linux就該這麼學》與《鳥哥的linux私房菜》哪個更適合初學者?
    《Linux就該這麼學》與《鳥哥的linux私房菜》哪個更適合初學者?期初學習看書推薦:《Linux就該這麼學》,《鳥哥的linux私房菜》、《Linux 內核設計與實現》……三本相比來說更推薦《Linux就該這麼學》,原因是言簡意賅,不像鳥哥那麼厚重看一半就閒置了……;後面是命令:man、date、wget、reboot……;再後面就是實驗:修改文件、修改文件權限、建立不同帳戶、帳戶間的切換……;「但是最重要的別不是這些表面的東西,而是你是否能夠徹底了解linux系統的思想
  • 樹莓派嘗試玩兒Docker虛擬機
    -----------------------------------------0x01 樹莓派安裝 Docker CE 步驟強烈警告:切勿在沒有配置 Docker APT 源的情況下直接使用 apt 命令安裝 Docker.
  • NET微服務在Docker下打包部署及運行
    ,運行以下命令docker --version命令執行,並顯一些版本信息,說明Docker安裝成功五、添加Docker元數據要運行Docker鏡像,我們需要一個Dockerfile六、創建Docker鏡像使用cmd命令提示符運行以下命令docker build -t microservice .