docker容器修改端口和目錄映射的方法步驟
一、容器修改端口映射
一般在運(yùn)行容器時(shí),我們都會(huì)通過參數(shù) -p(使用大寫的-P參數(shù)則會(huì)隨機(jī)選擇宿主機(jī)的一個(gè)端口進(jìn)行映射)來指定宿主機(jī)和容器端口的映射,例如
docker run -it -d --name [container-name] -p 8088:80 [image-name]
這里是將容器內(nèi)的80端口映射到宿主機(jī)的8088端口
參數(shù)說明
-d 表示后臺(tái)運(yùn)行容器
-t 為docker分配一個(gè)偽終端并綁定到容器的標(biāo)準(zhǔn)輸入上
-i 是讓容器的標(biāo)準(zhǔn)輸入保持打開狀態(tài)
-p 指定映射端口
在運(yùn)行容器時(shí)指定映射端口運(yùn)行后,如果想要添加新的端口映射,可以使用以下兩種方式:
方式一:將現(xiàn)有的容器打包成鏡像,然后在使用新的鏡像運(yùn)行容器時(shí)重新指定要映射的端口
方式二:修改要端口映射的容器的配置文件
查看容器信息:
docker ps -a
查看容器的端口映射情況,在容器外執(zhí)行:
docker port 容器ID 或者 docker port 容器名稱
查找要修改容器的容器Id
docker inspect f244 | grep Id
進(jìn)到/var/lib/docker/containers 目錄下找到與 Id 相同的目錄,修改 hostconfig.json 和 config.v2.json文件:
若該容器還在運(yùn)行,先停掉
docker stop 容器ID
停掉docker服務(wù)
systemctl stop docker
修改hostconfig.json如下,添加端口綁定"9003/tcp": [{“HostIp”: “”,“HostPort”: “9003”}],表示綁定端口9003
修改config.v2.json在ExposedPorts中加上要暴露的端口,即9003
改完之后保存啟動(dòng)docker
systemctl start docker
之后可以再次查看添加的端口是否已映射綁定上
附注:
1、將容器打包成鏡像命令:
docker commit -a "king西陽(yáng)" -m "a new image" [容器名稱或id] [打包的鏡像名稱]:[標(biāo)簽]
常用OPTIONS說明:
-a :提交的鏡像作者
-c :使用Dockerfile指令來創(chuàng)建鏡像
-m :提交時(shí)的說明文字
-p :在commit時(shí),將容器暫停
2、查看宿主機(jī)端口是否和容器內(nèi)端口映射成功,在容器外執(zhí)行
netstat -an |grep 宿主機(jī)的映射端口
如果有進(jìn)程存在則表示有映射
二、容器修改目錄映射
問題背景
docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7
• 創(chuàng)建容器時(shí),指定了目錄映射(-v)
• 如果容器運(yùn)行之后發(fā)現(xiàn)目錄映射需要改怎么辦?
刪除原有容器,重新創(chuàng)建新的容器
刪除容器
docker rm -f 容器ID/名字
重新創(chuàng)建容器
docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
重新指定需要映射的目錄
優(yōu)點(diǎn)
簡(jiǎn)單粗暴,在測(cè)試環(huán)境用的更多
缺點(diǎn)
如果是數(shù)據(jù)庫(kù)、服務(wù)器相關(guān)的容器,創(chuàng)建新的容器,又得重新配置相關(guān)東西了
修改容器配置文件(重點(diǎn))
暫停 Docker 服務(wù)
systemctl stop docker
進(jìn)入 Docker 容器配置文件目錄下
cd /var/lib/docker/containers/ ls
進(jìn)入某個(gè)容器的配置文件目錄下
容器ID 就是文件夾名稱,可通過 docker ps -aq 來查看,不過這是縮寫,對(duì)照起來看就行
cd c614b6db4aed0c8d0c742baa09ff4e2c24761703586460b68633d7b66e62c633 ls
修改 config.v2.json
vim config.v2.json
輸入 / ,搜索映射的目錄(webapps)
也可以找到 MountPoints
若需要重新指定主機(jī)上的映射目錄,則改綠圈的兩個(gè)地方
若需要重新指定容器上的映射目錄,則改藍(lán)圈的兩個(gè)地方
MountPoints 節(jié)點(diǎn)
其實(shí)是一個(gè) json 結(jié)構(gòu)的數(shù)據(jù),下圖
重新啟動(dòng) Docker 服務(wù)
systemctl stop docker docker start tomcat7 cd /usr/local/tomcat/webapps ls
重新映射目錄成功?。?/p>
注意
• 如果想修改 Docker 容器隨著 Docker 服務(wù)啟動(dòng)而自啟動(dòng),可看:https://www.cnblogs.com/poloyy/p/13985567.html
• 如果想修改 Docker 的映射端口,可看:https://www.cnblogs.com/poloyy/p/13940554.html
• 改 hostconfig.json 并不會(huì)成功哦
優(yōu)點(diǎn)
直接操作配置文件沒有副作用,算簡(jiǎn)單
缺點(diǎn)
需要暫停 Docker 服務(wù),會(huì)影響其他正常運(yùn)行的 Docker 容器
使用 docker commit 命令
停止 Docker 容器
docker stop tomcat7
使用 commit 構(gòu)建新鏡像
docker commit tomcat7 new_tomcat7 docker images
使用新鏡像重新創(chuàng)建一個(gè) Docker 容器
docker run -d -p 9999:8080 -i --name tomcat77 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
修改新容器的名字
如果新容器想用回舊容器的名字,需要先刪了舊容器,再改名
docker rm -f tomcat7 docker rename tomcat77 tomcat7 docker ps
優(yōu)點(diǎn)
• 無(wú)需停止 Docker 服務(wù),不影響其他正在運(yùn)行的容器
• 舊容器有的配置和數(shù)據(jù),新容器也會(huì)有,不會(huì)造成數(shù)據(jù)或配置丟失,對(duì)新舊容器都沒有任何影響
缺點(diǎn)
需要生成新的鏡像和容器,管理鏡像和容器的時(shí)間成本會(huì)上升
總結(jié)
到此這篇關(guān)于docker容器修改端口和目錄映射的文章就介紹到這了,更多相關(guān)docker修改端口和目錄映射內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
宿主機(jī)無(wú)法訪問docker容器中nginx服務(wù)的問題解決
在虛擬機(jī)中部署Docker并安裝Nginx后,宿主機(jī)無(wú)法訪問容器內(nèi)的Nginx服務(wù),通過檢查端口映射、防火墻狀態(tài)、進(jìn)入容器內(nèi)部啟動(dòng)Nginx以及檢查/修改內(nèi)核的IP轉(zhuǎn)發(fā)設(shè)置,解決了該問題,感興趣的可以了解一下2024-11-11Docker Buildx 簡(jiǎn)介與安裝指南(最新推薦)
Docker Buildx 是 Docker 官方推出的一款增強(qiáng)型構(gòu)建工具,旨在簡(jiǎn)化和優(yōu)化多架構(gòu)容器映像的構(gòu)建流程,這篇文章主要介紹了Docker Buildx 簡(jiǎn)介與安裝指南,需要的朋友可以參考下2024-08-08Linux如何使用Docker部署DashDot訪問本地服務(wù)器面板
DashDot是一款簡(jiǎn)單、實(shí)用的開源現(xiàn)代服務(wù)器儀表盤,主要應(yīng)用于小型?VPS?和私人的服務(wù)器(比如說NAS),它是一個(gè)界面非常漂亮的監(jiān)控服務(wù)器面板,這篇文章給大家介紹Linux使用Docker部署DashDot訪問本地服務(wù)器面板的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2024-04-04Docker容器網(wǎng)絡(luò)基礎(chǔ)概述
這篇文章主要介紹了Docker容器網(wǎng)絡(luò)基礎(chǔ)概述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Docker構(gòu)建鏡像的兩種方式實(shí)現(xiàn)
從 docker 鏡像倉(cāng)庫(kù)中下載的鏡像不能滿足我們的需求時(shí),可以通過以下兩種方式對(duì)鏡像進(jìn)行更改。本文就詳細(xì)的介紹了這兩種方法,感興趣的可以了解一下2021-09-09Windows遠(yuǎn)程連接Docker服務(wù)的操作方法
本文介紹了在Windows系統(tǒng)下如何通過配置遠(yuǎn)程連接到Docker服務(wù)端,實(shí)現(xiàn)Docker客戶端遠(yuǎn)程訪問和管理Docker容器,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-11-11