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