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 compose 服務(wù)啟動(dòng)順序控制的方法
這篇文章主要介紹了docker compose 服務(wù)啟動(dòng)順序控制的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Docker查看是否開機(jī)自啟及容器自啟動(dòng)設(shè)置
Docker是當(dāng)前最流行的容器技術(shù),通過(guò)運(yùn)用容器打包應(yīng)用程序并部署到生產(chǎn)環(huán)境中,可大大提高部署的速度和可靠性,下面這篇文章主要給大家介紹了關(guān)于Docker查看是否開機(jī)自啟及容器自啟動(dòng)設(shè)置的相關(guān)資料,需要的朋友可以參考下2024-01-01
docker拉取鏡像報(bào)錯(cuò):Error?response?from?daemon:?Get?“https://r
本文聚焦于解決?Docker?鏡像拉取報(bào)錯(cuò)?“Error?response?from?daemon:?Get?https://registry-1.docker.io/v2/:?dial?tcp?…:?i/o?timeout”?問(wèn)題,有需要的小伙伴可以了解下2025-08-08
Docker化Spring Boot應(yīng)用的實(shí)踐
本文主要介紹了Docker化Spring Boot應(yīng)用的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
SkyWalking使用和Docker環(huán)境下部署方式
Skywalking是一款分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8S、Mesos)架構(gòu)而設(shè)計(jì),該框架采用字節(jié)碼注入的方式實(shí)現(xiàn)代碼的無(wú)侵入,數(shù)據(jù)存儲(chǔ)支持Mysql、Elasticsearch等2026-02-02
docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)
Vaultwarden是一個(gè)開源的密碼管理器,它提供了類似于Bitwarden的功能,允許用戶安全地存儲(chǔ)和管理密碼、敏感數(shù)據(jù)和身份信息,本文主要介紹了docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10

