docker常用命令及參數(shù)的用法解讀
docker常用命令以及各種參數(shù), 包括安裝,卸載,重啟docker,查看日志 ,進(jìn)入容器內(nèi)部等詳細(xì)介紹。
流程框架

我們大體可以分為, 鏡像命令,和容器命令 2個(gè)大部分。
一、鏡像命令
1- 拉取鏡像
docker pull nginx:1.25.4
2- 推送鏡像
docker push dashu/centos79:v1
因?yàn)樯婕暗?登錄倉(cāng)庫(kù)的的知識(shí),這個(gè)push 命令會(huì)在這篇文章中詳細(xì)介紹
3-查看所有鏡像
docker images

4-刪除鏡像
docker rmi 鏡像名:版本號(hào)
比如: 刪除nginx 鏡像
docker rmi nginx:1.25.4

以上是對(duì)鏡像操作的相關(guān)命令
二、 容器命令
1-運(yùn)行并創(chuàng)建容器
docker run -d \ --name dashu-nginx \ -p 8080:80 \ nginx:1.25.4
為了方便上邊的命令,我給大家換行操作了,當(dāng)然你也可以不用換行,直接:
docker run -d --name dashu-nginx -p 6060:80 nginx:1.25.4
給大家解釋一下,各參數(shù)的意思
(1) -d 表示 后臺(tái)運(yùn)行

(2) --name 表示給容器起一個(gè)名字
(3) -p 端口映射
這塊詳細(xì)的可以參考這篇文章
(4) 最后跟上鏡像的名稱:版本
啟動(dòng)后我們?cè)L問(wèn)一下 我們的nginx:
http://10.0.0.199:6060/

2- 查看運(yùn)行的容器
docker ps

3- 停止容器
docker stop dashu-nginx

4- 啟動(dòng)容器
docker start dashu-nginx
后邊都是加的容器名字,
當(dāng)然你可以用容器的id

5- 查看容器日志(docker日志命令)
docker logs dashu-nginx

在工作中常用的是要加一個(gè)參數(shù) -f
意思是 follow ,時(shí)刻跟隨
docker logs dashu-nginx -f
我們?cè)L問(wèn)nginx 的時(shí)候, 會(huì)把日志實(shí)時(shí)打印在控制臺(tái),方便我們調(diào)試應(yīng)用程序。

我們不想用了可以用 ctrl + c 來(lái)結(jié)束
6- 進(jìn)入容器 (exec)
docker exec -it dashu-nginx /bin/bash
解釋: exec 是英文executive 執(zhí)行程序的縮寫。
-it 的意思也是 英文 interactive 人機(jī)交互的意思。
接下來(lái)就是要指定一個(gè)我們要進(jìn)入那個(gè)容器 (容器名字)
然后進(jìn)入容器內(nèi)部以后,我們要用什么樣的命令跟機(jī)器進(jìn)行交互。一般情況下,我們就會(huì)用bash進(jìn)行交互
我們指定為 /bin/bash
當(dāng)然還有其他的交互方式,后期白眉大叔整理一下,放到這里。

7-刪除容器
在刪除容器前,需要停止容器
docker stop dashu-nginx
然后再執(zhí)行刪除
docker rm dashu-nginx

以上就是 關(guān)于docker 鏡像和容器常用的幾個(gè)命令。 如果有問(wèn)題,可以下論留言。
三、 docker cp (傳輸文件)命令
平時(shí)我們想要宿主機(jī)與容器之間傳輸文件怎么辦?
docker cp 源地址 目標(biāo)地址
(1)比如,我們想要把宿主機(jī)的一個(gè)a 文件放到 容器內(nèi)(dashu-nginx)

docker cp /etc/passwd dashu-nginx:/tmp
(2) 容器內(nèi)的文件復(fù)制到 宿主機(jī)上
docker cp dashu-nginx:/etc/hosts /tmp
這里只要知道, 容器內(nèi)的地址,需要 容器名稱:/路徑 , 這就可以來(lái),簡(jiǎn)單吧。
如果是復(fù)制文件夾的命令也是一樣的:
docker cp /var/log/nginx dashu-nginx:/tmp
四、docker 數(shù)據(jù)卷
volume干什么的?做目錄映射(簡(jiǎn)單理解)

使用方法:
- -v 數(shù)據(jù)卷:容器內(nèi)目錄

綁定方式3種:
1- docker 自動(dòng)在外部創(chuàng)建文件掛載容器內(nèi)部指定的文件夾內(nèi)容 (dockerfile volume 指令的做用)
2- 自己在外部創(chuàng)建文件夾,手動(dòng)掛載
3- 可以把數(shù)據(jù)掛載內(nèi)存中(很少用) 不講了。
- –mount 掛載linux 宿主機(jī),手動(dòng)掛載(我們不用,了解即可)
- -v 可以自動(dòng)掛載。
- -v 宿主機(jī):容器中的目錄
這個(gè)相當(dāng)于: 容器中目錄的內(nèi)容 全部放到 宿主機(jī)目錄中。
容器里邊的變化了什么了,宿主機(jī)對(duì)應(yīng)的目錄中也會(huì)相應(yīng)的變化。
或者說(shuō), 宿主機(jī)中目錄變化了什么, 容器中的目錄也隨著變化。
我們來(lái)演示一下。
1-docker 部署mysql
docker run -d \ --name mysql \ -p 13306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
掛載配置文件示例:
假設(shè)有一個(gè)Nginx容器需要使用特定的配置文件nginx.conf,可以通過(guò)掛載配置文件的方式實(shí)現(xiàn):
docker run -d --name my-nginx -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx
這樣,Nginx容器將使用主機(jī)上的nginx.conf作為配置文件。
掛載卷示例:
假設(shè)需要將MySQL數(shù)據(jù)庫(kù)容器中的數(shù)據(jù)持久化存儲(chǔ)到主機(jī)上的/data/mysql目錄,可以通過(guò)掛載卷的方式實(shí)現(xiàn):
docker run -d --name my-mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql
這樣,MySQL容器的數(shù)據(jù)將持久化存儲(chǔ)在主機(jī)的/data/mysql目錄中。
五、 其他參數(shù)
–restart=always –gpus all
1-ro
是 容器內(nèi)不能修改文件,只能在主機(jī)上個(gè)修改。
什么都不加就是 默認(rèn), 默認(rèn)是rw 可讀可寫。
補(bǔ)充:
1、 容器7種狀態(tài)
created(已創(chuàng)建) restarting(重啟中) running(運(yùn)行中) removing(遷移中) paused(暫停) exited(停止) dead(死亡)
我們平時(shí) 用docker ps -a 可以查看 容器的狀態(tài)

第二部分 --docker命令進(jìn)階
這部分是不經(jīng)常用到的命令
一、 鏡像相關(guān)
1 批量刪除無(wú)用鏡像
清理所有懸掛(即無(wú)標(biāo)簽)鏡像,這些通常是構(gòu)建過(guò)程中留下的
docker image prune
加上 -a 參數(shù),可以刪除所有未被容器引用的鏡像:
2-清理特定時(shí)間前的鏡像
當(dāng)我們需要清理一定時(shí)間之前的鏡像時(shí),可以使用過(guò)濾器:
docker image prune -a --filter “until=168h”
3-按照大小排序
有時(shí)候,我們想優(yōu)先刪除體積較大的鏡像來(lái)快速釋放空間:
docker images --format ‘{{.Size}}\t{{.Repository}}:{{.Tag}}' | sort
-hr總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法
這篇文章主要介紹了Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
docker時(shí)區(qū)問(wèn)題和遷移數(shù)據(jù)問(wèn)題
這篇文章主要介紹了docker時(shí)區(qū)問(wèn)題和遷移數(shù)據(jù)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
docker實(shí)現(xiàn)MySQL數(shù)據(jù)同步的方法
docker的一大好處是在本地可以很方便快速的搭建負(fù)載均衡,主從同步等需要多主機(jī)的環(huán)境,本文主要介紹了docker實(shí)現(xiàn)MySQL數(shù)據(jù)同步的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Docker四種網(wǎng)絡(luò)模式演示及連通性測(cè)試
這篇文章主要為大家介紹了Docker四種網(wǎng)絡(luò)模式演示及連通性測(cè)試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
如何搭建配置Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟
本文主要介紹了如何搭建配置Docker私有倉(cāng)庫(kù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
解決docker pull鏡像報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決docker pull鏡像報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
使用Docker安裝Nginx并配置端口轉(zhuǎn)發(fā)問(wèn)題及解決方法
這篇文章主要介紹了使用Docker安裝Nginx并配置端口轉(zhuǎn)發(fā),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
idea使用docker生成鏡像(打包鏡像,導(dǎo)入鏡像,導(dǎo)出鏡像)
使用docker鏡像,可以快速地部署和運(yùn)行應(yīng)用程序,而無(wú)需擔(dān)心環(huán)境差異、依賴項(xiàng)問(wèn)題等,本文主要介紹了idea使用docker生成鏡像,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Docker初級(jí)網(wǎng)絡(luò)端口映射的配置
這篇文章主要介紹了Docker初級(jí)網(wǎng)絡(luò)端口映射的配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

