在docker run建立並執行容器的時候,可以通過-p指定埠對映規則。但是,很有可能剛開始你忘記設定了,或者說設定錯了需要修改。
docker start執行容器並沒有提供乙個-p選項,讓你指定埠對映規則。乙個解決方案就是把原來的容器刪掉,重新建乙個。
要是無狀態的應用類映象還好,如果是資料庫映象,那重新建乙個簡直就是nightmare:)啊
下面我列出幾種解決方案:
容器的配置檔案在
/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
複製**
其中的hash_of_the_container是docker映象的hash值,可以通過docker ps或者docker inspect container_name檢視。
其中有一項是portbindings,例如上面這個例子中,5432/tcp對應的是容器內部的5432埠,hostport對應的是對映到宿主機的埠,把這個數字修改一下就可以了。然後重啟docker服務:
systemctl restart docker
複製**
最後start docker映象。
這個方法的好處是沒有***,操作也很簡單,缺點是需要重啟整個docker服務,如果在同乙個宿主機上執行著很多映象的話,有可能會影響其他容器的服務。
第一步:停止docker容器
docker stop container01
複製**
第二步:commit該docker容器
docker commit container01 new_image:tag
複製**
docker commit:把乙個容器的檔案改動和配置資訊commit到乙個新的映象。這在測試的時候會很有用,把容器所有的檔案改動核配置資訊匯入到乙個嶄新的dockers映象,然後用這個映象起乙個容器,這對之前的那個容器不會產生任何影響。需要注意的是:第三步:用前一步新生成的映象重新起乙個容器
docker run --name container02 -p 80:80 new_image:tag
複製**
這種方法的好處是不會影響統一宿主機上的其他容器,缺點是管理起來顯得一團糟,不像第一種方法那麼直觀。
我一般偏好於第一種方法,但是如果在不能影響統一宿主機上其他服務的情況下,也只能採取第二種方法。
如何刪除所有正在執行的Docker容器
到現在為止 docker版本1.12 我們使用以下命令刪除所有正在執行的容器 如果我們要刪除卷,我們可以使用以下命令中的相應標記 v手動執行此操作 刪除所有已退出的容器 docker rm docker ps q f status exited 刪除所有已停止的容器 docker rm docker...
oracle expdp如何停止正在執行的job
linux環境,前幾天使用expdp導資料,中途不想導了,當時直接關了當前cmd 視窗,想起可能這個job還在執行。好吧,學習一下如何停止 1 先看看有哪些資料幫浦的job select from dba datapump jobs 以上語句查出來的可能有幾條資料 sys export schema...
正在執行的SQL
sql server select spid session id,ecid,database db name sp.dbid user nt username,status er.status,wait wait type,individual query substring qt.text,er...