docker常用命令及參數(shù)的用法解讀
docker常用命令以及各種參數(shù), 包括安裝,卸載,重啟docker,查看日志 ,進入容器內(nèi)部等詳細介紹。
流程框架
我們大體可以分為, 鏡像命令,和容器命令 2個大部分。
一、鏡像命令
1- 拉取鏡像
docker pull nginx:1.25.4
2- 推送鏡像
docker push dashu/centos79:v1
因為涉及到 登錄倉庫的的知識,這個push 命令會在這篇文章中詳細介紹
3-查看所有鏡像
docker images
4-刪除鏡像
docker rmi 鏡像名:版本號
比如: 刪除nginx 鏡像
docker rmi nginx:1.25.4
以上是對鏡像操作的相關命令
二、 容器命令
1-運行并創(chuàng)建容器
docker run -d \ --name dashu-nginx \ -p 8080:80 \ nginx:1.25.4
為了方便上邊的命令,我給大家換行操作了,當然你也可以不用換行,直接:
docker run -d --name dashu-nginx -p 6060:80 nginx:1.25.4
給大家解釋一下,各參數(shù)的意思
(1) -d 表示 后臺運行
(2) --name 表示給容器起一個名字
(3) -p 端口映射
這塊詳細的可以參考這篇文章
(4) 最后跟上鏡像的名稱:版本
啟動后我們訪問一下 我們的nginx:
http://10.0.0.199:6060/
2- 查看運行的容器
docker ps
3- 停止容器
docker stop dashu-nginx
4- 啟動容器
docker start dashu-nginx
后邊都是加的容器名字,
當然你可以用容器的id
5- 查看容器日志(docker日志命令)
docker logs dashu-nginx
在工作中常用的是要加一個參數(shù) -f
意思是 follow ,時刻跟隨
docker logs dashu-nginx -f
我們訪問nginx 的時候, 會把日志實時打印在控制臺,方便我們調試應用程序。
我們不想用了可以用 ctrl + c 來結束
6- 進入容器 (exec)
docker exec -it dashu-nginx /bin/bash
解釋: exec 是英文executive 執(zhí)行程序的縮寫。
-it 的意思也是 英文 interactive 人機交互的意思。
接下來就是要指定一個我們要進入那個容器 (容器名字)
然后進入容器內(nèi)部以后,我們要用什么樣的命令跟機器進行交互。一般情況下,我們就會用bash進行交互
我們指定為 /bin/bash
當然還有其他的交互方式,后期白眉大叔整理一下,放到這里。
7-刪除容器
在刪除容器前,需要停止容器
docker stop dashu-nginx
然后再執(zhí)行刪除
docker rm dashu-nginx
以上就是 關于docker 鏡像和容器常用的幾個命令。 如果有問題,可以下論留言。
三、 docker cp (傳輸文件)命令
平時我們想要宿主機與容器之間傳輸文件怎么辦?
docker cp 源地址 目標地址
(1)比如,我們想要把宿主機的一個a 文件放到 容器內(nèi)(dashu-nginx)
docker cp /etc/passwd dashu-nginx:/tmp
(2) 容器內(nèi)的文件復制到 宿主機上
docker cp dashu-nginx:/etc/hosts /tmp
這里只要知道, 容器內(nèi)的地址,需要 容器名稱:/路徑 , 這就可以來,簡單吧。
如果是復制文件夾的命令也是一樣的:
docker cp /var/log/nginx dashu-nginx:/tmp
四、docker 數(shù)據(jù)卷
volume干什么的?做目錄映射(簡單理解)
使用方法:
- -v 數(shù)據(jù)卷:容器內(nèi)目錄
綁定方式3種:
1- docker 自動在外部創(chuàng)建文件掛載容器內(nèi)部指定的文件夾內(nèi)容 (dockerfile volume 指令的做用)
2- 自己在外部創(chuàng)建文件夾,手動掛載
3- 可以把數(shù)據(jù)掛載內(nèi)存中(很少用) 不講了。
- –mount 掛載linux 宿主機,手動掛載(我們不用,了解即可)
- -v 可以自動掛載。
- -v 宿主機:容器中的目錄
這個相當于: 容器中目錄的內(nèi)容 全部放到 宿主機目錄中。
容器里邊的變化了什么了,宿主機對應的目錄中也會相應的變化。
或者說, 宿主機中目錄變化了什么, 容器中的目錄也隨著變化。
我們來演示一下。
1-docker 部署mysql
docker run -d \ --name mysql \ -p 13306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ mysql
掛載配置文件示例:
假設有一個Nginx容器需要使用特定的配置文件nginx.conf,可以通過掛載配置文件的方式實現(xiàn):
docker run -d --name my-nginx -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx
這樣,Nginx容器將使用主機上的nginx.conf作為配置文件。
掛載卷示例:
假設需要將MySQL數(shù)據(jù)庫容器中的數(shù)據(jù)持久化存儲到主機上的/data/mysql目錄,可以通過掛載卷的方式實現(xiàn):
docker run -d --name my-mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql
這樣,MySQL容器的數(shù)據(jù)將持久化存儲在主機的/data/mysql目錄中。
五、 其他參數(shù)
–restart=always –gpus all
1-ro
是 容器內(nèi)不能修改文件,只能在主機上個修改。
什么都不加就是 默認, 默認是rw 可讀可寫。
補充:
1、 容器7種狀態(tài)
created(已創(chuàng)建) restarting(重啟中) running(運行中) removing(遷移中) paused(暫停) exited(停止) dead(死亡)
我們平時 用docker ps -a 可以查看 容器的狀態(tài)
第二部分 --docker命令進階
這部分是不經(jīng)常用到的命令
一、 鏡像相關
1 批量刪除無用鏡像
清理所有懸掛(即無標簽)鏡像,這些通常是構建過程中留下的
docker image prune
加上 -a 參數(shù),可以刪除所有未被容器引用的鏡像:
2-清理特定時間前的鏡像
當我們需要清理一定時間之前的鏡像時,可以使用過濾器:
docker image prune -a --filter “until=168h”
3-按照大小排序
有時候,我們想優(yōu)先刪除體積較大的鏡像來快速釋放空間:
docker images --format ‘{{.Size}}\t{{.Repository}}:{{.Tag}}' | sort -hr
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker時區(qū)問題和遷移數(shù)據(jù)問題
這篇文章主要介紹了docker時區(qū)問題和遷移數(shù)據(jù)問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12docker實現(xiàn)MySQL數(shù)據(jù)同步的方法
docker的一大好處是在本地可以很方便快速的搭建負載均衡,主從同步等需要多主機的環(huán)境,本文主要介紹了docker實現(xiàn)MySQL數(shù)據(jù)同步的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03使用Docker安裝Nginx并配置端口轉發(fā)問題及解決方法
這篇文章主要介紹了使用Docker安裝Nginx并配置端口轉發(fā),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01idea使用docker生成鏡像(打包鏡像,導入鏡像,導出鏡像)
使用docker鏡像,可以快速地部署和運行應用程序,而無需擔心環(huán)境差異、依賴項問題等,本文主要介紹了idea使用docker生成鏡像,具有一定的參考價值,感興趣的可以了解一下2024-02-02