欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux中Docker遇到報(bào)port?is?already?allocated錯(cuò)誤

 更新時(shí)間:2024年06月29日 15:00:04   作者:IT后浪  
在Linux系統(tǒng)中,如果嘗試綁定一個(gè)網(wǎng)絡(luò)服務(wù)到一個(gè)已經(jīng)被其他進(jìn)程使用的端口上,你會(huì)遇到“port?is?already?allocated”錯(cuò)誤,這意味著該端口已經(jīng)被另一個(gè)進(jìn)程占用,因此無(wú)法再次被分配給任何新的服務(wù)

在Linux系統(tǒng)中,當(dāng)你運(yùn)行Docker容器或其他服務(wù)時(shí),如果遇到port is already allocated錯(cuò)誤,,這意味著該端口已經(jīng)被另一個(gè)進(jìn)程占用,因此無(wú)法再次被分配給任何新的服務(wù)。

解決此類問(wèn)題,通??梢圆捎孟旅娌襟E操作

找出哪個(gè)進(jìn)程占用了端口

方式一:lsof命令

lsof -i :<port_number>

這個(gè)命令會(huì)列出所有綁定到指定端口 <port_number> 的進(jìn)程。輸出結(jié)果中,PID列顯示的就是對(duì)應(yīng)進(jìn)程的ID。

注意:冒號(hào)【:】后面不要帶空格;否則會(huì)出現(xiàn)unacceptable port specification in的錯(cuò)誤提示。

方式二:netstat命令

netstat -tulpn | grep :<port_number>

這個(gè)命令將展示所有TCP連接以及監(jiān)聽(tīng)中的UDP端口,并通過(guò)管道配合 grep 過(guò)濾出指定端口號(hào)的行。在輸出信息中,可以看到對(duì)應(yīng)的PID/Program name。

方式三:ss命令

ss -plnt | grep :<port_number>

ss 是一個(gè)用來(lái)分析 socket 統(tǒng)計(jì)信息的工具,它提供了比 netstat 更高效更詳細(xì)的輸出。

停止占用端口的進(jìn)程

找到占用端口的PID(進(jìn)程ID),然后使用kill命令結(jié)束該進(jìn)程

kill <pid>

如果是Docker容器占用

如果發(fā)現(xiàn)是某個(gè)Docker容器占用了端口,可以先列出所有正在運(yùn)行的容器,并查找與問(wèn)題端口相關(guān)的容器:

顯示當(dāng)前正在運(yùn)行的容器

docker ps

顯示所有狀態(tài)的容器

docker ps -a

Docker容器的狀態(tài)共有 7 種:created|restarting|running|removing|paused|exited|dead。

顯示所有正在運(yùn)行容器及其端口映射

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}"

停止并移除容器

docker stop <container_id_or_name>
docker rm <container_id_or_name>

重新映射端口

如果你需要同時(shí)運(yùn)行多個(gè)服務(wù)且它們都希望使用相同的端口,你可以為新的Docker容器映射不同的主機(jī)端口

docker run -p <new_host_port>:<container_port> ...

為什么不直接kill掉Docker占用端口進(jìn)程

在Docker容器中,如果你知道某個(gè)進(jìn)程的PID,并且想要結(jié)束該進(jìn)程,理論上你可以使用 kill pid 命令來(lái)終止它。但是通常并不推薦,這是因?yàn)椋?/p>

  • 隔離性: Docker 容器內(nèi)部運(yùn)行的所有進(jìn)程都在一個(gè)獨(dú)立的命名空間內(nèi),這意味著宿主機(jī)上的直接 PID 可能與容器內(nèi)部的 PID 不一致。你需要首先通過(guò) docker exec 進(jìn)入容器環(huán)境,然后獲取并使用容器內(nèi)的 PID 執(zhí)行命令。
  • 容器管理: 正常情況下,應(yīng)該通過(guò) Docker 提供的接口來(lái)管理容器及其內(nèi)部服務(wù)。比如,使用 docker stop 或 docker kill 來(lái)停止或強(qiáng)制停止整個(gè)容器,這將確保容器按照預(yù)期的方式關(guān)閉所有服務(wù)和資源。
  • 服務(wù)穩(wěn)定性: 如果直接殺掉容器中的某個(gè)進(jìn)程,而不考慮容器的整體狀態(tài)和服務(wù)依賴關(guān)系,可能會(huì)導(dǎo)致容器內(nèi)部的服務(wù)狀態(tài)異常、數(shù)據(jù)丟失或其他未預(yù)見(jiàn)的問(wèn)題。
  • 服務(wù)重啟策略: 在很多場(chǎng)景下,Docker 容器會(huì)配置為自動(dòng)重啟失敗的服務(wù),而直接在容器內(nèi)部殺死進(jìn)程可能違反了這種重啟策略,使得容器無(wú)法正?;謴?fù)到期望狀態(tài)。

總結(jié)

到此這篇關(guān)于Linux系統(tǒng)中遇到報(bào)port is already allocated錯(cuò)誤的文章就介紹到這了,更多相關(guān)Docker報(bào)port is already allocated錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • apache實(shí)現(xiàn)部署多個(gè)網(wǎng)站(一個(gè)ip部署多域名)的方法詳解

    apache實(shí)現(xiàn)部署多個(gè)網(wǎng)站(一個(gè)ip部署多域名)的方法詳解

    最近去機(jī)房幫別人配置網(wǎng)站,機(jī)房的服務(wù)器本身已經(jīng)搭建了一個(gè)網(wǎng)站,我們需要再配置一個(gè),所以記錄下來(lái),這篇文章主要給大家介紹了關(guān)于apache如何實(shí)現(xiàn)部署多個(gè)網(wǎng)站(一個(gè)ip部署多域名)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-11-11
  • Linux環(huán)境變量配置的完整攻略

    Linux環(huán)境變量配置的完整攻略

    這篇文章主要給大家介紹了關(guān)于Linux環(huán)境變量配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • linux系統(tǒng)下如何掛載NTFS移動(dòng)硬盤

    linux系統(tǒng)下如何掛載NTFS移動(dòng)硬盤

    用命令行掛載移動(dòng)硬盤是Linux的基本操作之一,雖然目前有些Linux系統(tǒng)能自動(dòng)加載移動(dòng)硬盤,但有些時(shí)候(比如使用Ubuntu Server或其它Linux系統(tǒng)的時(shí)候)仍然需要手動(dòng)操作,下面這篇文章主要介紹了linux系統(tǒng)下如何掛載NTFS移動(dòng)硬盤,需要的朋友可以參考借鑒。
    2017-01-01
  • ubuntu20.04設(shè)置靜態(tài)ip地址(包括不同版本)

    ubuntu20.04設(shè)置靜態(tài)ip地址(包括不同版本)

    這篇文章主要介紹了ubuntu20.04設(shè)置靜態(tài)ip地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • linux系統(tǒng)Ansible自動(dòng)化運(yùn)維部署方法

    linux系統(tǒng)Ansible自動(dòng)化運(yùn)維部署方法

    在本篇文章里小編給大家整理了關(guān)于linux系統(tǒng)Ansible自動(dòng)化運(yùn)維部署方法以及知識(shí)點(diǎn)總結(jié),需要的朋友們參考下。
    2019-06-06
  • apache+php上傳大文件以上傳100M為例

    apache+php上傳大文件以上傳100M為例

    這篇文章主要介紹了apache+php上傳大文件以上傳100M為例,需要的朋友可以參考下
    2014-03-03
  • Linux檢測(cè)遠(yuǎn)程服務(wù)器端口的幾種方法

    Linux檢測(cè)遠(yuǎn)程服務(wù)器端口的幾種方法

    作為系統(tǒng)管理員、網(wǎng)絡(luò)工程師或應(yīng)用程序開(kāi)發(fā)人員,需要檢查遠(yuǎn)程服務(wù)器上的端口是否打開(kāi),以便您可以判斷所檢查的服務(wù)是否正在運(yùn)行,所以本文給大家介紹了Linux檢測(cè)遠(yuǎn)程服務(wù)器端口的幾種方法,需要的朋友可以參考下
    2024-06-06
  • Linux系統(tǒng)下如何運(yùn)行.sh文件的實(shí)現(xiàn)

    Linux系統(tǒng)下如何運(yùn)行.sh文件的實(shí)現(xiàn)

    這篇文章主要介紹了Linux系統(tǒng)下如何運(yùn)行.sh文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • CentOS7如何重置root密碼的方法

    CentOS7如何重置root密碼的方法

    這篇文章主要介紹了CentOS7如何重置root密碼的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • inotify-tools+rsync實(shí)時(shí)同步文件的配置方法

    inotify-tools+rsync實(shí)時(shí)同步文件的配置方法

    我使用的是google的inotify-tools,比較簡(jiǎn)單.國(guó)內(nèi)有功能很強(qiáng)大的類似的程序,但是好復(fù)雜.
    2013-02-02

最新評(píng)論