Docker命令中的各種參數(shù)使用(run、v、rm、-w、-u、-e)
介紹
run 的各種參數(shù)
docker run [OPTIONS] IMAGE [COMMOND] [ARGS...] # OPTIONS 說明 --name="容器新名字": 為容器指定一個名稱; -d: 后臺運行容器,并返回容器ID,也即啟動守護(hù)式容器; -i:以交互模式運行容器,通常與 -t 同時使用; -t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用; -P: 隨機端口映射; -p: 指定端口映射,有以下四種格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort -w: 指定命令執(zhí)行時,所在的路徑 # IMAGE XXX_IMAGE_NAME:XXX_IMAGE_VER # COMAND 例:mvn -Duser.home=xxx -B clean package -Dmaven.test.skip=true
常用OPTIONS補足:
--name:容器名字
--network:指定網(wǎng)絡(luò)
--rm:容器停止自動刪除容器
-i:--interactive,交互式啟動
-t:--tty,分配終端
-v:--volume,掛在數(shù)據(jù)卷
-d:--detach,后臺運行
(-w 在run中,似乎也可直接使用)
在已運行的容器中運行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
常用選項:
-d:--detach ,后臺運行命令
-e, --env list 設(shè)置env
-i, --interactive 啟用交互式
-t, --tty 啟用終端
-u, --user string 指定用戶 (格式: <name|uid>[:<group|gid>])
-w, --workdir string 指定工作目錄
在容器內(nèi)執(zhí)行/bin/bash命令
# eg: 使用鏡像nginx:latest以交互模式啟動一個容器,在容器內(nèi)執(zhí)行/bin/bash命令。 docker run -it centos /bin/bash
docker -v 掛載 (目錄)
比如我要啟動一個centos容器,宿主機的/test目錄掛載到容器的/soft目錄,可通過以下方式指定:
# docker run -it -v /test:/soft centos /bin/bash
冒號":"前面的目錄是宿主機目錄,后面的目錄是容器內(nèi)目錄。
# docker run -it -v /test:/soft centos /bin/bash
一、容器目錄不可以為相對路徑
二、宿主機目錄如果不存在,則會自動生成
# docker run -it -v test1:/soft centos /bin/bash
三、宿主機的目錄如果為相對路
?容器內(nèi)的/soft目錄掛載的是宿主機上的/var/lib/docker/volumes/test1/_data目錄
?所謂的相對路徑指的是/var/lib/docker/volumes/,與宿主機的當(dāng)前目錄無關(guān)。
四、如果在容器內(nèi)修改了目錄的屬主和屬組,那么對應(yīng)的掛載點會跟著修改
其他更多掛載目錄的方法 (可以使用鏡像直接掛載)
docker -v 掛載 (Volume)
Docker的數(shù)據(jù)持久化—數(shù)據(jù)不隨著container的結(jié)束而結(jié)束,
數(shù)據(jù)存在于host機器上:(以下兩種中的一種)
- 存在于host的某個指定目錄中(使用bind mount),
- 使用docker自己管理的volume(/var/lib/docker/volumes下)
Docker Volume示例
-v maven-repository-volume:/MyPoroject/mvn/.m2
查看【maven-repository-volume】的volume:
docker volume inspect my-volume
注意:
- host機器的目錄路徑必須為全路徑(即需要以/或~/開始的路徑),
- 不然docker會把這個目錄當(dāng)做volume
docker --rm
容器退出時就能夠自動清理容器內(nèi)部的文件系統(tǒng)。
即當(dāng)使用docker stop后,會直接刪除容器,若數(shù)據(jù)沒有掛載出來的話就直接被刪除了,所以這個需要看自己具體的業(yè)務(wù)場景去使用。
docker -w -it
-w 指的是在哪個目錄下去執(zhí)行這個命令。這個目錄指的是容器內(nèi)的目錄。
docker run -i --rm --name getSign \ -v /opt/getSign:/usr/src/app -v /opt/getSign:/root/.npm \ -w /usr/src/app dockerhub.com/common/node:19.7.0 bash -c "pnpm install && pnpm run build:dev"
可以看到上面的示例,我把容器外的/opt/getSign的代碼目錄掛載到了容器內(nèi)的/usr/src/app目錄。那么此時我的代碼就是在容器內(nèi)的 /usr/src/app 目錄下了,所以我想執(zhí)行pnpm命令的時候,需要指定執(zhí)行目錄為 -w /usr/src/app 這個目錄。
到此這篇關(guān)于Docker命令中的各種參數(shù)使用(run、v、rm、-w、-u、-e)的文章就介紹到這了,更多相關(guān)Docker命令的各種參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker部署打包發(fā)布springboot項目
本文主要介紹了使用Docker部署打包發(fā)布springboot項目,從安裝docker到多種方式打包發(fā)布,編譯,鏡像,容器等問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng)
這篇文章主要介紹了Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02docker學(xué)習(xí)筆記之把容器commit成鏡像的方法
本篇文章主要介紹了docker學(xué)習(xí)筆記之把容器commit成鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05docker容器內(nèi)運行jupyter映射到本地方式
通過在容器內(nèi)指定Jupyter的IP為0.0.0.0,并使用--no-browser參數(shù),可以正確將Jupyter端口映射到本地,具體步驟包括在本地機器運行Docker容器,指定端口映射;在容器內(nèi)運行Jupyter Notebook,設(shè)置--ip和--no-browser參數(shù)(一般還需--allow-root)2024-11-11Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法
這篇文章主要介紹了Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05