Docker 常用命令整合!!!带你一起理解和复习每个操作命令!!!带操作图,不会也能看懂的!!
本文整理出在Docker中常用的命令,一是可以做一個(gè)備忘錄的作用,二是也可以作為一個(gè)復(fù)習(xí)的文章。
Docker鏡像、容器、日志等等相關(guān)命令都涵蓋在內(nèi),文內(nèi)帶有操作圖,不難的哦。
很喜歡一句話:“八小時(shí)內(nèi)謀生活,八小時(shí)外謀發(fā)展。”
共勉
地點(diǎn):湖南邵陽(yáng)
作者:博主
一、Docker 相關(guān)命令
查看Docker 版本號(hào)
docker --version查看Docker 相關(guān)信息
docker info查看Docker幫助命令
docker --help可以查看到所有Docker 命令,不過(guò)對(duì)英語(yǔ)不太好的同學(xué)不太友善哈。🙃~~(我也是)~~
二、Docker鏡像相關(guān)命令
2.1、鏡像查看
-
列出本地鏡像
1、查看全部鏡像
docker images2、查看全部鏡像含中間映像層
docker images -a3、其他
docker images -q #僅顯示鏡像id docker history -H imageserver #顯示指定鏡像的歷史創(chuàng)建;參數(shù):-H 鏡像大小和日期 imageserver 我自己做的一個(gè)鏡像
2.2、鏡像搜索
搜索MySQL的鏡像
docker search mysql #帶上版本號(hào)搜索 docker search mysql:5.7 #docker search <鏡像名>:<版本號(hào)>-**-filter=stars:**只顯示 starts>=600 的鏡像
docker search --filter=stars=600 mysql–automated :只列出 AUTOMATED=OK 的鏡像
docker search --automated mysql2.3、鏡像下載
下載最新官方鏡像(此處以下載redis 做例子)
docker pull redis #不指定版本號(hào)時(shí),默認(rèn)拉取最新版本 即latest docker pull redis:5.0.7# 指定版本號(hào) 即加一個(gè)引號(hào) 后說(shuō)明版本號(hào)即可。下載倉(cāng)庫(kù)所有Redis鏡像
docker pull -a redis下載網(wǎng)上公開(kāi)的倉(cāng)庫(kù)鏡像
docker pull bitnami/redis #即別人制作的公開(kāi)放到網(wǎng)上的鏡像2.4、鏡像刪除
刪除單個(gè)鏡像
注意:(不強(qiáng)制刪除,必須先刪除此鏡像相關(guān)的容器,才能刪除此鏡像)
##相當(dāng)于:docker rmi redis:latest docker rmi redis強(qiáng)制刪除(即有運(yùn)行的容器,也強(qiáng)行刪除,但并不會(huì)刪除正在運(yùn)行的容器[已親測(cè)])
##強(qiáng)制刪除(針對(duì)基于鏡像有運(yùn)行的容器進(jìn)程) docker rmi -f redis批量刪除(不同鏡像之間用空格間隔)
docker rmi -f redis mysql nginx刪除本地全部鏡像
docker rmi -f $(docker images -q) #$() 可以簡(jiǎn)單理解為sql 語(yǔ)句中嵌套語(yǔ)句2.5、鏡像構(gòu)建
此處只做一個(gè)最簡(jiǎn)單的例子,一句兩句說(shuō)不清。牽扯Dockerfile文件書寫。
(1) 編寫我們的Dockerfile文件
from centos:latestENV mypath /usr WORKDIR $mypathRUN yum -y install vim RUN yum -y install net-toolsEXPOSE 80CMD /bin/bash(2) 構(gòu)建鏡像
docker build -f /myDocker/Dockerfile2 -t mycentos:1.3 #如果 dockerfile文件在當(dāng)前目錄 命令可簡(jiǎn)寫為 docker build -t mycentos:1.3 .解釋:
1、docker build 為docker中鏡像構(gòu)建命令
2、-f :指明dockerfile文件的路徑
3、-t :指定鏡像生成名字 版本號(hào)為可選。
4、. 最后的小數(shù)點(diǎn)意思是在當(dāng)前目錄下, 即Dockerfile所在目錄
三、Docker 容器相關(guān)命令
3.1、查看容器
1、查看正在運(yùn)行的容器
docker ps2、查看正在運(yùn)行的容器的ID
docker ps -q3、查看正在運(yùn)行+歷史運(yùn)行過(guò)的容器
docker ps -a4、獲取正在運(yùn)行的容器redis的 IP
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis5、查看容器元信息(此處以redis舉例)
docker inspect myredis #myredis 是我的redis 容器名在啟動(dòng)集群的時(shí)候比較有效,單機(jī)的話就~~。
3.2、啟動(dòng)容器
啟動(dòng)暫停的容器
docker start <容器名||容器id>重啟容器
docker restart redis #<容器名||容器id>此處以啟動(dòng)redis容器舉例
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 000415–restart=always 總是開(kāi)機(jī)啟動(dòng)
–log是日志方面的
-p 6379:6379 將6379端口掛載出去
–name:給這個(gè)容器取一個(gè)名字
-v 數(shù)據(jù)卷掛載
- /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 這里是將 liunx 路徑下的myredis.conf 和redis下的redis.conf 掛載在一起。
- /home/redis/myredis/data:/data 這個(gè)同上
-d redis 表示后臺(tái)啟動(dòng)redis
redis-server /etc/redis/redis.conf 以配置文件啟動(dòng)redis,加載容器內(nèi)的conf文件,最終找到的是掛載的目錄 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf
–appendonly yes 開(kāi)啟redis 持久化
–requirepass 000415 設(shè)置密碼 (如果你是通過(guò)docker 容器內(nèi)部連接的話,就隨意,可設(shè)可不設(shè)。但是如果想向外開(kāi)放的話,一定要設(shè)置,我被搞過(guò),可以看這篇文章“阿里云服務(wù)器中毒‘Kirito666’經(jīng)歷”)
成功界面
3.3、容器進(jìn)程
##top支持 ps 命令參數(shù),格式: docker top [OPTIONS] CONTAINER [ps OPTIONS] ##列出redis容器中運(yùn)行進(jìn)程 docker top redis ##查看所有運(yùn)行容器的進(jìn)程信息3.4、容器的停止和刪除
停止一個(gè)運(yùn)行中的容器
docker stop myredis #stop 后 跟容器名或容器id 都可以殺掉一個(gè)運(yùn)行中的容器
docker kill myredis #同上刪除一個(gè)已停止的容器
docker rm myreis #同上刪除一個(gè)運(yùn)行時(shí)的容器
docker rm -f myredis #同上刪除全部容器
docker rm -f $(docker ps -a -q) #$() 你可以理解sql 語(yǔ)句中的嵌套語(yǔ)句四、Docker 查看運(yùn)行日志
基本格式:docker logs [OPTIONS] CONTAINER
OPTIONS:可帶參數(shù) 見(jiàn)下圖。
- –details 顯示更多的信息
- -f, --follow 跟蹤實(shí)時(shí)日志
- –since string 顯示自某個(gè)timestamp之后的日志,或相對(duì)時(shí)間,如30m(即30分鐘)
- –tail string 從日志末尾顯示多少行日志, 默認(rèn)是all
- -t, --timestamps 顯示時(shí)間戳
- –until string 顯示自某個(gè)timestamp之前的日志,或相對(duì)時(shí)間,如30m(即30分鐘)
舉例:
4.1、查看此容器全部運(yùn)行日志:
docker logs <容器id>4.2、查看日志,只顯示最后200行
docker logs --tail 200 CONTAINER_ID4.3、查看最近30分鐘的日志
docker logs --since 30m CONTAINER_ID4.4、查看某時(shí)間之后的日志
dockere logs -t --since "2021-07-31T10:35:10" d0e #d0e是我的容器id4.5、查看某時(shí)間段之間的日志
docker logs -t --since "2021-07-31T10:35:10" --until "2021-07-31T10:36:10" CONTAINER_ID五、自言自語(yǔ)
又是繼續(xù)內(nèi)卷的一天啊,昨天看群聊,里面的大佬凌晨了還在討論問(wèn)題,講真,我有點(diǎn)怕啦。這還邀不要人睡啦啊。?😇
一起 共勉 or🛌。(我還是覺(jué)得🛌更爽啊,唉,不過(guò)不能選啊)
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Docker 常用命令整合!!!带你一起理解和复习每个操作命令!!!带操作图,不会也能看懂的!!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot集成MybatisP
- 下一篇: 这次让我们从字节码文件来重新认识Stri