新聞中心
如何使用不同的命令啟動已經(jīng)停止運行的 docker 容器?
作者:somenzz 2022-05-06 07:20:38
云計算
云原生 使用 Python 容器,不修改系統(tǒng)的一個文件,安全環(huán)保,不想用了,直接停止刪除容器,再刪除鏡像。

為大竹等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及大竹網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、成都網(wǎng)站建設、大竹網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
你好,我是征哥,我相信不少人都會遇到這樣的問題,容器本來運行的好好的,可是有一天報錯退出了,重啟容器依然報錯,因為默認命令會崩潰,這意味著我無法啟動容器后使用 docker exec。
今天分享:如何不重新構建鏡像的情況解決容器報錯的問題,只需要兩步。
第一步,將報錯的容器保存至新的鏡像
這一步是為了保存之前對容器的變更,如果沒有對容器寫入東西,這一步可以忽略。
先查看報錯的容器,記錄它的 CONTAINER_ID:
docker ps -a
然后將容器保存至新的鏡像:
docker commit $CONTAINER_ID somenzz/image_xxx_new
第二步,從新的鏡像啟動一個新的命令
比如說啟動一個 shell,去修復容器:
docker run -ti --entrypoint=sh somenzz/image_xxx_new
這里用到了 entrypoint[1],在構建鏡像的時候,我們可以使用 CMD 或者 ENTRYPOINT 配置容器啟動時的執(zhí)行命令,但這兩者有所不同:
- CMD 命令設置容器啟動后默認執(zhí)行的命令及其參數(shù),但 CMD 設置的命令能夠被 docker run 命令后面的命令行參數(shù)替換。
- ENTRYPOINT 配置容器啟動時的執(zhí)行命令,不會被忽略,一定會被執(zhí)行,即使運行 docker run 時指定了其他命令。
我用 Python 容器的方法
容器就是運行環(huán)境的打包。我在自己的服務器上安裝了 Docker,那想獲取一個 Python 環(huán)境,太簡單了:
首先下載 Python 鏡像,目前最新是 3.10.4,你可以 docker search python 查看。
sudo docker pull python
然后啟動一個后臺永不退出的容器:
sudo docker run --name mypython -dt python /bin/bash
然后就可以隨意使用 Python 了:
sudo docker exec -it mypython python [宿主機器的 Python 腳本,非容器內(nèi)部]
如果要安裝依賴:
sudo docker exec -it mypython pip install requests
這樣使用 Python 容器,不修改系統(tǒng)的一個文件,安全環(huán)保,不想用了,直接停止刪除容器,再刪除鏡像。
文章題目:如何使用不同的命令啟動已經(jīng)停止運行的Docker容器?
瀏覽地址:http://www.dlmjj.cn/article/ccicpjo.html


咨詢
建站咨詢
