(二)使用一下docker的容器

2021-10-04 12:29:21 字數 3271 閱讀 3001

不管是 win10 還是 linux,docker 的命令都是一樣的,不過 linux 下要帶上 sudo,因為 docker 是以 root 許可權執行docker守護程序

linux:

start/stop docker   # ubuntu

service docker start/restart/stop # centos

sudo docker info
該命令列印出一大堆配置資訊即說明 docker 正常執行了,資訊包括所有容器和映象的數量、docker的執行驅動和儲存驅動、基本的配置等

sudo docker run -it ubuntu /bin/bash    # 建立並執行乙個隨機命名的容器

sudo docker run -name *** -it ubuntu /bin/bash # 建立並執行乙個容器名為***的容器

補充解釋:

-it選項分別是:-i:開啟容器的標準輸入 stdin,即鍵盤輸入;-t:使新容器擁有乙個 shell

/bin/bash 則告訴 docker 在新容器中要執行命令 /bin/bash

該命令建立執行的容器是乙個精簡版的 ubuntu 系統,擁有自己的網路、ip 位址、和宿主機通訊的橋接網路介面等

sudo docker create -it 映象名稱 # 建立乙個隨機命名的容器

sudo docker create --name *** -it 映象名稱 # 建立乙個容器名為***的容器

有什麼用?當容器因為內部執行出錯停止時可以重新啟動,從而避免一些損失

sudo docker run --restart=always --name *** -d ubuntu ...
還可以設定自動重啟的上限次數:

--restart=on-failure:5
exit
sudo docker ps -a
sudo docker ps
sudo docker ps -l
sudo docker inspect 容器名或id
sudo docker rm 容器名稱或 id
目前沒有一鍵刪除所有容器的功能,但我們可以這樣:

sudo docker rm `sudo docker ps -a -q`
但 windows 中不是用這個命令批量刪除

sudo docker start/restart/stop 容器名或 id
但是,這樣啟動的容器只是在後台執行,並沒有進入 shell 介面,這時我們可以用附著到容器的命令:

sudo docker attach 容器名或 id
注意!

如果想要在容器退出後使用 start 命令啟動,則只有守護式容器可以長時間執行,而普通的容器則會在啟動後馬上停止執行。

解決方法為:在建立這些普通容器時使用 -dit 選項:

sudo docker run -dit --name ***x ubuntu
sudo docker run --name *** -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done;"
解釋:

-d:detached 的意思,指示放在後台執行

/bin/sh -c:讓 bash 將後面的乙個字串作為完整的命令來執行

「while true; do echo hello world; sleep 1; done;」:每隔一秒在容器內部的 shell 視窗輸出 hello world

可以通過附著到容器檢視,也可以通過 docker log 檢視

獲取守護式容器的日誌(僅獲取當前已輸出的日誌)

sudo docker logs 容器名或 id
跟蹤守護式容器的日誌(實時顯示)

sudo docker logs -f 容器名或 id
按 ctrl+c 退出

-t 選項可以列印時間

sudo docker top 容器名或 id
輸出樣例:

pid                 user                time                command

2710 root 0:00 /bin/sh -c while true; do echo hello world; sleep 1; done;

3167 root 0:00 sleep 1

sudo docker exec -d 容器名或id touch ***_file
解釋:

在***容器中建立乙個檔案

這有什麼用呢?用處可大了,比如上面例子中遇到的守護式容器想要進行互動,但沒有介面怎麼辦?這時就可以用上在容器內執行bash程序的命令了:

sudo docker exec -it 容器名或id /bin/bash
指把乙個已建立的容器匯出到乙個檔案中

匯出:

sudo docker export 容器名或id > ***.tar
匯入為乙個映象:

sudo docker import ***.tar 映象名

引用一下官方

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

簡單運用一下Django

1 首先第一步,我建議先建立乙個虛擬環境的前提 如果有了可以直接跳過 sudo pip install virtualenv2 將python3複製乙份到虛擬環境中 mkvirtualenv 你的虛擬環境名 p python3 如果要創乙個python2的直接 mkvirtualenv 你的虛擬環境...

準備試用一下PHPUnit

看phpunit幾點要注意的 1.資料提供 dataprovider 2.測試異常 setexpectedexception 直接寫try catch 再 this fail 可能寫好 3.測試輸出 phpunit extensions outputtestcase expectoutputstri...