如果運(yùn)行的服務(wù)在docker中運(yùn)行,想要訪問的話要進(jìn)入容器中,然后才能訪問
容器相當(dāng)于是鏡像實(shí)例化出來的對象【相互關(guān)系解釋】
各容器通過服務(wù)器內(nèi)網(wǎng)ip進(jìn)行互相溝通
| 命令 | 效果 |
|---|---|
| docker images | 查看docker中所有鏡像/可加 -f 使用過濾器/可加 -q 只輸出鏡像ID |
| docker images 鏡像名 | 查看docker中所有指定名字的鏡像 |
| docker images 鏡像名:tag名 | 查看docker中所有指定名字和tag的鏡像 |
| docker save 鏡像名:鏡像版本號 -o 鏡像文件名 | 保存docker中的鏡像文件到文件目錄 |
| docker rmi 鏡像ID | 從系統(tǒng)docker中移除指定鏡像 |
| docker load --input 鏡像壓縮包名.tar | 加載鏡像壓縮包中的鏡像到系統(tǒng)docker |
| docker load < 鏡像壓縮包名.tar | 加載鏡像壓縮包中的鏡像到系統(tǒng)docker,與上一條等價 |
| docker ps | 看docker中所有還在跑的容器 |
| docker ps -a | 看docker中所有容器,包括已經(jīng)死了的 |
| docker logs -f 容器ID | 查看指定容器的日志 |
| docker logs 容器名 > log.txt | 將docker日志保存到本地文件 |
| docker rm -f 容器ID | 從系統(tǒng)docker中移除指定容器 |
| docker exec -it 容器ID /bin/bash | 進(jìn)入指定容器,并且進(jìn)入bash【命令行工具】 |
| docker system df | 查看Docker的磁盤使用情況 |
| docker system prune | 清理磁盤,刪除關(guān)閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無tag的鏡像) |
| docker system prune -a | 清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉。注意,這個命令會把你暫時關(guān)閉的容器,以及暫時沒有用到的Docker鏡像都刪掉。所以使用之前一定要想清楚 |
| docker run -p 宿主機(jī)端口:容器里面的端口 --restart-always -d -v 宿主機(jī)絕對路徑:容器里面的路徑/opt/kvp 鏡像名 | 用指定鏡像起一個帶守護(hù)進(jìn)程的容器 |
| docker run -p 宿主機(jī)端口:容器里面的端口 -d --env-file=配置文件 鏡像名 | 在跑容器時加載指定配置文件中的環(huán)境變量 |
| docker system df | 查看鏡像、容器、數(shù)據(jù)卷所占用的空間 |
| docker image ls -f dangling=true | 查看沒有鏡像名的虛懸鏡像 |
| docker image prune | 刪除虛懸鏡像 |
| free -h | 查看機(jī)器的內(nèi)存配置 |
| docker container start | 將一個已經(jīng)終止的容器啟動運(yùn)行 |
| docker container ls | 展示在跑的所有容器 |
| docker container ls -a | 展示所有容器,包括已經(jīng)終止的 |
| docker container stop | 中止一個運(yùn)行中的容器 |
| docker container restart | 將一個運(yùn)行中的容器終止,后重新啟動 |
| docker container rm | 刪除一個終止的容器 |
| docker container rm -f | 刪除一個容器,無所謂此容器是否終止 |
| docker container prune | 刪除所有處于終止?fàn)顟B(tài)的容器 |
| docker export 容器id > 文件名 | 保存一個容器的快照 |
| cat 文件名 | docker import - 容器名:tag | 從文件中加載一個容器快照,同時設(shè)定容器名和tag |
| docker search 鏡像名 | 查找官方倉庫中的鏡像 |
| docker pull 鏡像名 | 拉取指定鏡像 |
| docker inspect 容器名 | 查看容器信息 |
跑容器時的參數(shù)及意義
| 命令 | 效果 |
|---|---|
| --restart="always" | 自動持久化,死了自動拉起來 |
| -p 宿主機(jī)端口:容器里面的端口 | 設(shè)置端口映射關(guān)系,可多次使用映射多個端口 |
| -d | 跑起來以后不打印鏡像日志/類似于nohup跑 |
| -v 宿主機(jī)絕對路徑:容器里面的絕對路徑 | 文件目錄掛載,將宿主機(jī)里的目錄掛載進(jìn)容器的指定目錄中,可用此實(shí)現(xiàn)文件存儲路徑的掛載和配置文件的掛載/可以掛載目錄也可以掛載具體的文件 |
| -v 數(shù)據(jù)卷名稱:容器里面的絕對路徑 | 將數(shù)據(jù)卷掛載到容器的指定目錄 |
| --mount type=bind,source=宿主機(jī)絕對路徑,target=容器里面的絕對路徑 | 將宿主機(jī)里的目錄掛載進(jìn)容器的指定目錄中,與-v的區(qū)別是如果宿主機(jī)路徑不存在,--mount不會自動創(chuàng)建 |
| --mount source=數(shù)據(jù)卷名稱,target=容器里面的絕對路徑 | 將數(shù)據(jù)卷掛載到容器的指定目錄 |
| --env-file=環(huán)境變量文件 | 在跑鏡像的時候手動加載環(huán)境變量文件,這樣加載的環(huán)境變量會成為優(yōu)先配置 |
| --rm | 容器退出后隨即刪除,一般用于測試 |
| -i | 交互式操作 |
| -t | 終端 |
| -it 鏡像名/容器名 bash | 一般這么用,表示進(jìn)入容器的bash界面 |
dockerfile指令
| 指令 | 效果 |
|---|---|
| RUN Linux指令 | 在鏡像中執(zhí)行目標(biāo)指令 |
| COPY 本地路徑 鏡像內(nèi)目標(biāo)路徑 | 將本地路徑拷貝到鏡像內(nèi)的目標(biāo)路徑,本地路徑可以指向具體文件也可以指向目錄【如conf/*】 |
| ADD 本地路徑 鏡像內(nèi)目標(biāo)路徑 | 基本和COPY一致,當(dāng)本地路徑指向一個tar壓縮文件時,ADD指令會自動將其解壓后再放入鏡像 |
| CMD Linux指令 | 在鏡像中執(zhí)行目標(biāo)指令,此用法與RUN無異 |
| CMD ["可執(zhí)行文件", "參數(shù)1", "參數(shù)2"...] | 在鏡像中執(zhí)行指定的可執(zhí)行文件,并帶上相應(yīng)參數(shù),一般用于指定默認(rèn)的容器主進(jìn)程的啟動命令 |
| ENTRYPOINT | 與以上CMD的兩種使用方法無異,但如果有ENTRYPOINT時,CMD將會變?yōu)榻oENTRYPOINT傳參,執(zhí)行語句為 <ENTRYPOINT> "<CMD>" |
| ENV key value | 聲明環(huán)境變量,聲明后可用$key調(diào)用環(huán)境變量,容器運(yùn)行時也可以使用此環(huán)境變量 |
| ENV key=value | 聲明環(huán)境變量,聲明后可用$key調(diào)用環(huán)境變量,容器運(yùn)行時也可以使用此環(huán)境變量 |
| ARG | 用法同ENV,但在容器運(yùn)行時是無法使用ARG定義的環(huán)境變量的 |
| VOLUME 目錄 | 指定目錄掛載為匿名卷,這樣在運(yùn)行時沒有指定掛載卷也不會報錯 |
| EXPOSE 端口 | 聲明運(yùn)行時容器提供服務(wù)端口,僅為聲明,并不會真的做什么操作 |
| WORKDIR 工作目錄路徑 | 指定之后的工作目錄,在流程中相當(dāng)于cd/如果目標(biāo)目錄不存在則會自動創(chuàng)建 |
| USER 用戶名 | 指定之后執(zhí)行命令的用戶身份 |
| HEALTHCHECK [選項(xiàng)] CMD <命令> | 設(shè)置檢查容器健康狀況的命令 |
| HEALTHCHECK NONE | 如果基礎(chǔ)鏡像有健康檢查指令,使用這行可以屏蔽掉其健康檢查指令 |
| ONBUILD 其它指令 | 在當(dāng)前鏡像構(gòu)建時并不會被執(zhí)行,以當(dāng)前鏡像為基礎(chǔ)鏡像,去構(gòu)建下一級鏡像的時候才會被執(zhí)行 |
數(shù)據(jù)管理
| 指令 | 效果 |
|---|---|
| docker volume create 數(shù)據(jù)卷名稱 | 創(chuàng)建數(shù)據(jù)卷 |
| docker volume ls | 查看所有數(shù)據(jù)卷 |
| docker volume inspect 數(shù)據(jù)卷名稱 | 查看指定數(shù)據(jù)卷信息 |
| docker volume rm 數(shù)據(jù)卷名稱 | 刪除數(shù)據(jù)卷 |
| docker volume prune | 刪除所有無主的數(shù)據(jù)卷【容器終止時數(shù)據(jù)卷不會被刪除 |