Docker學(xué)習(xí)之常用的基礎(chǔ)命令總結(jié)
前言
Docker是一個(gè)用了一種新穎方式實(shí)現(xiàn)的超輕量虛擬機(jī),在實(shí)現(xiàn)的原理和應(yīng)用上還是和VM有巨大差別,專業(yè)的叫法是應(yīng)用容器(Application Container)。下面這篇文章將簡(jiǎn)單介紹一下Docker常用的一些基礎(chǔ)命令。
# 在ubuntu中安裝docker $ sudo apt-get install docker.io # 查看docker的版本信息 $ docker version # 查看安裝docker的信息 $ docker info # 查看本機(jī)Docker中存在哪些鏡像 $ docker images # 檢索image $ docker search ubuntu:14.04 # 在docker中獲取ubuntu鏡像 $ docker pull ubuntu:14.04 # 顯示一個(gè)鏡像的歷史 $ docker history birdben/ubuntu:v1 # 列出一個(gè)容器里面被改變的文件或者目 $ docker diff birdben/ubuntu:v1 # 從一個(gè)容器中取日志 $ docker logs birdben/ubuntu:v1 # 顯示一個(gè)運(yùn)行的容器里面的進(jìn)程信息 $ docker top birdben/ubuntu:v1 # 從容器里面拷貝文件/目錄到本地一個(gè)路徑 $ docker cp ID:/container_path to_path # 列出當(dāng)前所有正在運(yùn)行的容器 $ docker ps # 列出所有的容器 $ docker ps -a # 列出最近一次啟動(dòng)的容器 $ docker ps -l # 查看容器的相關(guān)信息 $ docker inspect $CONTAINER_ID # 顯示容器IP地址和端口號(hào),如果輸出是空的說明沒有配置IP地址(不同的Docker容器可以通過此IP地址互相訪問) $ docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID # 保存對(duì)容器的修改 $ docker commit -m "Added ssh from ubuntu14.04" -a "birdben" 6s56d43f627f3 birdben/ubuntu:v1 # 參數(shù): # -m參數(shù)用來來指定提交的說明信息; # -a可以指定用戶信息的; # 6s56d43f627f3代表的時(shí)容器的id; # birdben/ubuntu:v1指定目標(biāo)鏡像的用戶名、倉(cāng)庫(kù)名和 tag 信息。 # 構(gòu)建一個(gè)容器 $ docker build -t="birdben/ubuntu:v1" . # 參數(shù): # -t為構(gòu)建的鏡像制定一個(gè)標(biāo)簽,便于記憶/索引等 # . 指定Dockerfile文件在當(dāng)前目錄下,也可以替換為一個(gè)具體的 Dockerfile 的路徑。 # 在docker中運(yùn)行ubuntu鏡像 $ docker run <相關(guān)參數(shù)> <鏡像 ID> <初始命令> # 守護(hù)模式啟動(dòng) $ docker run -it ubuntu:14.04 # 交互模式啟動(dòng) $ docker run -it ubuntu:14.04 /bin/bash # 指定端口號(hào)啟動(dòng) $ docker run -p 80:80 birdben/ubuntu:v1 # 指定配置啟動(dòng) $ sudo docker run -d -p 10.211.55.4:9999:22 birdben/ubuntu:v1 '/usr/sbin/sshd' -D # 參數(shù): # -d:表示以“守護(hù)模式”執(zhí)行,日志不會(huì)出現(xiàn)在輸出終端上。 # -i:表示以“交互模式”運(yùn)行容器,-i 則讓容器的標(biāo)準(zhǔn)輸入保持打開 # -t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行,-t 選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上 # -v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>,-v 標(biāo)記來創(chuàng)建一個(gè)數(shù)據(jù)卷并掛載到容器里。在一次 run 中多次使用可以掛載多個(gè)數(shù)據(jù)卷。 # -p:表示宿主機(jī)與容器的端口映射,此時(shí)將容器內(nèi)部的 22 端口映射為宿主機(jī)的 9999 端口,這樣就向外界暴露了 9999 端口,可通過 Docker 網(wǎng)橋來訪問容器內(nèi)部的 22 端口了。 # 注意:這里使用的是宿主機(jī)的 IP 地址:10.211.55.4,與對(duì)外暴露的端口號(hào) 9999,它映射容器內(nèi)部的端口號(hào) 22。ssh外部需要訪問:ssh root@10.211.55.4 -p 9999 # 不一定要使用“鏡像 ID”,也可以使用“倉(cāng)庫(kù)名:標(biāo)簽名” # start 啟動(dòng)容器 $ docker start 117843ade696117843ade696 # stop 停止正在運(yùn)行的容器 $ docker stop 117843ade696117843ade696 # restart 重啟容器 $ docker restart 117843ade696117843ade696 # rm 刪除容器 $ docker rm 117843ade696117843ade696 # rmi 刪除鏡像 $ docker rmi ed9c93747fe1Deleted # 登錄Docker Hub中心 $ docker login # 發(fā)布上傳image(push) $ docker push birdben/ubuntu:v1
當(dāng)利用 docker run 來創(chuàng)建容器時(shí),Docker 在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:
1、檢查本地是否存在指定的鏡像,不存在就從公有倉(cāng)庫(kù)下載
2、利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器
3、分配一個(gè)文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀寫層
4、從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去
5、從地址池配置一個(gè) ip 地址給容器
6、執(zhí)行用戶指定的應(yīng)用程序
7、執(zhí)行完畢后容器被終止
總結(jié)
關(guān)于Docker常用的基礎(chǔ)命令就基本總結(jié)這些,希望對(duì)有需要的朋友們能有所幫助,如果大家有疑問可以留言交流。
相關(guān)文章
vscode利用ssh配置docker容器并開啟遠(yuǎn)程編程模式的詳細(xì)步驟
這篇文章主要介紹了vscode利用ssh配置docker容器內(nèi)開啟遠(yuǎn)程編程模式,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03構(gòu)建一個(gè)簡(jiǎn)單的CaaS系統(tǒng)
本文主要介紹如何從零開始構(gòu)建一個(gè)簡(jiǎn)易的CaaS(Container as a Service)系統(tǒng)。簡(jiǎn)單易懂,希望有想學(xué)習(xí)的小伙伴可以關(guān)注下2016-10-10Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)
本文主要介紹了Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Docker Overlay2磁盤空間占用過大清理的方法實(shí)現(xiàn)
隨著業(yè)務(wù)量的不斷增大,容器的不斷啟動(dòng),往往會(huì)出現(xiàn)磁盤空間不足,本文主要介紹了Docker Overlay2磁盤空間占用過大清理的方法實(shí)現(xiàn),感興趣的可以了解一下2022-03-03Docker如何打包本地環(huán)境為tar包給別人使用
這篇文章主要介紹了Docker如何打包本地環(huán)境為tar包給別人使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Docker私有倉(cāng)庫(kù)管理和刪除本地倉(cāng)庫(kù)中的鏡像
這篇文章主要介紹了Docker私有倉(cāng)庫(kù)管理和刪除本地倉(cāng)庫(kù)中的鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01清理docker磁盤空間的方法總結(jié)(附詳細(xì)講解)
docker?鏡像特別容易占空間,稍微不注意可能磁盤爆滿,所以本文給大家詳細(xì)介紹了如何清理?docker?磁盤空間,并通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-02-02使用docker-compose,如何調(diào)整JVM參數(shù)
這篇文章主要介紹了使用docker-compose,如何調(diào)整JVM參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01