Docker容器和鏡像操做

前言

Docker 容器和鏡像操做,記錄下來!💻🐸html

容器

  • 建立一個新的容器(ubuntu)並啓動
$ docker run -dit --name ubuntu ubuntu
複製代碼

  • 在容器內執行命令(容器在後臺啓動),用 docker exec 命令
$ docker exec -it ubuntu bash
複製代碼

注意:使用exit 命令退出在容器內執行命令。linux

  • 查看容器詳細信息
& docker inspect ubuntu
複製代碼

包括容器的ID、容器名、環境變量、運行命令、主機配置、網絡配置等。nginx

使用 -f 參數能夠查看用戶關心的數據:docker

  1. 查看容器運行狀態:docker inspect -f='{{.State.Running}}' ubuntu shell

  2. 查看容器ip地址:docker inspect -f='{{.NetworkSettings.IPAddress}}' ubuntu ubuntu

  3. 查看容器名、容器id:docker inspect -f='{{.Name}} {{.ID}}' ubuntu 數組

  • 查看容器的進程
$ docker top ubuntu
複製代碼

容器導出

  • 使用 export 命令能夠導出容器
$ docker export nginx > ./docker/nginx.tar
複製代碼

該命令將nginx容器導入到docker目錄下。bash

容器導入

  • 使用 import 命令導入容器
$ cat nginx.tar | docker import - importednginx:ilatest
複製代碼

鏡像

鏡像和容器的關係就像是程序和進程的關係,鏡像扮演的角色就是容器的模板,不一樣鏡像能夠構建不一樣的容器。

本地鏡像管理

  • 執行docker run再去下載會比較慢,能夠先執行docker pull將鏡像先下載下來,再運行。
$ docker pull hub.c.163.com/library/nginx:latest
複製代碼

  • 由下載下來的鏡像來構建容器
$ docker run -itd --name 163nginx -p 80:80 hub.c.163.com/library/nginx:latest
複製代碼

  • 刪除鏡像docker rmi
$ docker rmi 鏡像ID/鏡像名
複製代碼

有的時候,沒法刪除一個鏡像,大部分緣由是由於該鏡像被一個容器所依賴,此時須要先刪除容器,而後就能夠刪除鏡像了。微信

建立本地鏡像

  • 根據已有容器建立一個本地鏡像:commit 命令
$ docker commit -m "update index.html" --author='leeyunt' 13af96130e40 leeyunt/nginx:v1
複製代碼

命令解釋:網絡

  1. 參數-m是對建立的該鏡像的一個簡單描述。
  2. --author表示該鏡像的做者。
  3. 13af96130e40表示建立鏡像所依據的容器的id
  4. leeyunt/nginx則表示倉庫名,leeyunt是名稱空間,nginx是鏡像名。
  5. v1表示倉庫的tag。
  6. 建立完成後,經過docker images命令就能夠查看到剛剛建立的鏡像。
  7. 經過剛剛建立的鏡像運行一個容器,訪問該容器,發現nginx默認的首頁已經發生改變。

  • 根據Dockerfile文件構建鏡像
  1. 新建一個名爲Dockerfile的文件,內容以下:
FROM nginx
MAINTAINER leeyunt "leeyunt@outlook.com"
RUN echo 'hello docker!'>/usr/share/nginx/html/index.html
COPY ./hello.html /usr/share/nginx/html/
複製代碼

解釋:

  1. FROM nginx表示該鏡像的構建,以已有的nginx鏡像爲基礎,在該鏡像的基礎上構建。
  2. MAINTAINER指令用來聲明建立鏡像的做者信息以及郵箱信息,這個命令不是必須的。
  3. RUN指令用來修改鏡像,算是使用比較頻繁的一個指令了,該指令能夠用來安裝程序、安裝庫以及配置應用程序等,一個RUN指令執行會在當前鏡像的基礎上建立一個新的鏡像層,接下來的指令將在這個新的鏡像層上執行,RUN語句有兩種不一樣的形式:shell格式和exec格式。本案例採用的shell格式,shell 格式就像linux命令同樣,exec格式則是一個JSON數組,將命令放到數組中便可。在使用RUN命令時,適當的時候能夠將多個RUN命令合併成一個,這樣能夠避免在建立鏡像時建立過多的層。
  4. COPY語句則是將鏡像上下文中的hello.html文件拷貝到鏡像中。

  1. 文件建立完成後,執行以下命令進行構建:
$ docker build -t leeyunt/nginx:v1 .
複製代碼

命令解釋:

  1. -t參數用來指定鏡像的命名空間,倉庫名以及TAG等信息。
  2. 最後面的.是指鏡像構建上下文。

將鏡像上傳到Docker Hub

  • 經過docker push命令
$ docker push leeyunt/nginx:v1
複製代碼

上傳成功後,用戶登陸 Docker Hub,就能夠看到剛剛的鏡像已經上傳成功了。

最後

下期學習Docker高級用法。 🐔🐧🐦🐤

今日寄語:
「昨天下了雨,今天颳了風,明天太陽就出來了🌞️」

歡迎關注我的微信公衆號:桃李報春 我的博客:leeyunt.top

桃李報春
相關文章
相關標籤/搜索