[技術(shù)探索]Docker學(xué)習(xí)筆記

鏡像與容器

docker中容器和鏡像的關(guān)系是什么?docker的整個(gè)生命周期有三部分組成:鏡像(image)+容器(container)+倉庫(repository)。容器是由鏡像實(shí)例化而來。

也可以說,鏡像是文件,容器是進(jìn)程。容器是基于鏡像創(chuàng)建的,即容器中的進(jìn)程依賴于鏡像中的文件

基礎(chǔ)命令

systemctl  start|stop|restart status  docker 啟動(dòng)docker服務(wù)管理
docker search imageName 在倉庫搜索鏡像名
docker pull imageName 下載上面的鏡像,鏡像位置: /var/lib/docker
docker images <imageName>(可選) |docker image ls 查看鏡像

鏡像重命名

對本地鏡像的tag name重命名,并生成一個(gè)新的鏡像

yxl@servename:~$ docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              15.10               9b9cb95443b5        4 years ago         137MB

docker tag [老的鏡像名稱]:[老的鏡像TAG]   [新的鏡像名稱]:[新的鏡像TAG]
docker tag  ubuntu:15.10                 ubuntu-new:latest 
ubuntu-new          latest              9b9cb95443b5        4 years ago         137MB
ubuntu              15.10               9b9cb95443b5        4 years ago         137MB

鏡像刪除

dokcer rim  命令參數(shù)  鏡像ID
docker rmi  命令參數(shù) (-f) 鏡像名稱:鏡像版本

鏡像導(dǎo)入導(dǎo)出

docker save -o 鏡像名.tar   本地鏡像名稱|ID  //導(dǎo)出
docker load  <  鏡像名.tar   //導(dǎo)入
docekr laod  --input  鏡像名.tar   //導(dǎo)入
cat 模板文件.tar |docekr import -  自定義鏡像名稱

鏡像歷史和詳細(xì)信息

docker history 鏡像名稱:版本號(hào)
docker inspect 命令參數(shù) 鏡像名稱:鏡像版本號(hào)
docker inspect 命令參數(shù) 鏡像ID

容器查看,創(chuàng)建,啟動(dòng)

docker ps |docker ps -a (-a顯示所有運(yùn)行過的容器)
docker create 參數(shù)命令 依賴鏡像 容器內(nèi)命令  容器內(nèi)命令參數(shù)//創(chuàng)建一個(gè)待運(yùn)行的容器
   命令參數(shù):-t 在新容器內(nèi)指定一個(gè)偽終端或終端。
            -i  允許你對容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互
            --name 自定義容器名
docker created  -it --name nginx-newname nginx ls -a 

docker ps -a 即可參看上述容器被運(yùn)行過

容器啟動(dòng)

  • 啟動(dòng)待啟動(dòng)或已關(guān)閉容器
docker start 容器ID或名稱
  • 基于鏡像信件內(nèi)容器并啟動(dòng)
docker run 命令參數(shù) 鏡像名稱  執(zhí)行的命令
   命令參數(shù):-t 在新容器內(nèi)指定一個(gè)偽終端或終端。
            -i  允許你對容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互
            --name 自定義容器名  
            -d 在后端運(yùn)行容器并打印容器ID
           --rm 容器退出后自動(dòng)刪除容器
docker  run --rm --name nginxNewName nginx  /bin/echo "hello world"
  • 守護(hù)進(jìn)程啟動(dòng)docker
docker  run -d nginx 

容器的暫停,取消暫停,重啟

docker pause |unpause 容器ID或名稱
docker restart  容器ID或名稱

容器關(guān)閉,終止,刪除

docker stop 容器ID或名稱  //延遲執(zhí)行關(guān)閉一個(gè)處于暫?;蜻\(yùn)行狀態(tài)的容器
docker kill 容器ID或名稱 //強(qiáng)制并立即關(guān)閉一個(gè)處于暫?;蜻\(yùn)行狀態(tài)的容器
docker rm  -f(強(qiáng)制刪除在運(yùn)行的) 容器ID或名稱
docker rm -f $(docker ps -a -q)批量刪除容器

容器進(jìn)入與退出

退出:exit,ctrl+D
進(jìn)入

docker run -it --name 重命名容器 依賴鏡像  /bin/bash
docker exec  -it    容器ID或名稱  //手動(dòng)進(jìn)入
#!/bin/bash 
#定義進(jìn)入倉庫函數(shù)
docker_in(){
   CONTAINER_ID=$1
   PID=$(docker inspect --format {{.State.Pid}}   $CONTAINER_ID)
   nsenter  --target $PID --mount -uts --ipc  --net --pid
}
docker_in $1

基于容器創(chuàng)建鏡像

//將本地運(yùn)行的容器創(chuàng)建鏡像
docker commit -m "變更信息" -a "作者"  依賴鏡像  容器名稱:版本號(hào)

docker export 導(dǎo)出的容器名稱.tar 
cat 導(dǎo)出容器名稱.tar |docker import - 生成的鏡像名稱

數(shù)據(jù)管理(數(shù)據(jù)卷,數(shù)據(jù)卷容器)

//用于數(shù)據(jù)持久化-數(shù)據(jù)卷
docker run  -itd --name 自定義容器名稱   -v    宿主機(jī)目錄:容器數(shù)據(jù)卷目錄  依賴鏡像

//使用特定的容器作為數(shù)據(jù)卷,這個(gè)容器就叫數(shù)據(jù)卷容器
1.創(chuàng)建數(shù)據(jù)卷容器
docker create -v /data-temp   --name  自定義數(shù)據(jù)卷容器名稱   依賴鏡像
2. 創(chuàng)建多個(gè)容器與上述數(shù)據(jù)卷容器進(jìn)行交互
docker run --volumes-from 上述數(shù)據(jù)卷自定義容器名稱  --name  當(dāng)前容器自定義名稱  依賴鏡像

數(shù)據(jù)備份

1.創(chuàng)建一個(gè)   掛載數(shù)據(jù)卷容器  的  容器(存在備份目錄backup,和共享目錄data-temp)
2.上述容器掛載宿主機(jī)本地目錄作為備份目錄
3.將數(shù)據(jù)卷容器的內(nèi)容備份到宿主機(jī)本地目錄掛載的數(shù)據(jù)卷容器中
4.完成備份任務(wù)之后刪除創(chuàng)建數(shù)據(jù)卷的容器
docker run -it   --rm  --volumes-from 自定義數(shù)據(jù)備份數(shù)據(jù)卷容器的容器名  -v 宿主機(jī)目錄:備份用數(shù)據(jù)卷容器備份目錄  依賴鏡像   壓縮備份命令
docker  run -it --rm --volumes-from v-temp -v /home/yxl/backup:/backup  nginx  tar -zcPf /backup/data-temp.tar.gz    /data-temp

網(wǎng)絡(luò)管理

宿主機(jī)與容器端口之間的映射

docker run -d  -P 宿主機(jī)IP::容器端口  --name 容器名稱  鏡像依賴//隨機(jī)端口映射 port:32768++
dockrt run -p   宿主機(jī)IP:宿主機(jī)端口:容器端口  --name   容器名稱  鏡像依賴
dockrt run -p   宿主機(jī)IP(可忽略):宿主機(jī)端口:容器端口  --name   容器名稱  鏡像依賴.
dockrt run -p  宿主機(jī)端口0:容器端口0  宿主機(jī)端口1:容器端口1  --name   容器名稱  鏡像依賴
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容