日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Docker教程之使用dockerfile生成鏡像_docker

作者:甜點cc ? 更新時間: 2022-12-16 編程語言

用dockerfile生成鏡像并掛載數據卷

編寫dockerfile文件

創建dockerfile01 文件

# 基礎鏡像
FROM centos

VOLUME ["volume01", "volume02"]

CMD echo "-----end----"

docker build 構建鏡像

docker build -f ./dockerfile01 -t xiao-centos .

啟動鏡像

docker run -it 鏡像ID /bin/bash

可以看到生成鏡像時自動掛載的,數據卷目錄

以上dockerfile方式屬于匿名掛載數據卷

清理docker使用空間

我個人使用的是單核2G的云服務器,用了快三年了,內存、cpu嚴重吃緊,所以就嘗試了清理docker使用空間,主要是刪除未使用過的鏡像、容器、數據卷、網絡命令,具體如下:

官方文檔鏈接 https://docs.docker.com/config/pruning/

執行如下可以查看 Docker 的磁盤使用情況(類似于 Linux 上的 df 命令)

docker system df

刪除所有未使用過的鏡像

docker image prune -a

刪除所有停止的容器

docker container prune
docker rm -f $(docker ps -aq)

僅刪除超過 24 小時的停止容器

docker container prune --filter "until=24h"

數據卷永遠不會自動刪除,因為這樣做可能會破壞數據

刪除未使用的數據卷

docker volume prune

刪除沒有使用過的網絡

docker network prune

刪除所有未使用過的資源

docker system prune

手動刪除/var/lib/docker/volumes的問題解決

當時清理docker使用空間的時候,清過頭了,一下子把掛載的數據卷也給順手清理了??,真是自己給自己找事做。

錯誤信息

手動刪除了掛載到宿主機上的所有數據卷,在啟動容器掛載數據卷的時候就會報錯

如下,重新運行容器,原先具名掛載數據卷juming-nginx,報錯信息如下??

docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx

docker: Error response from daemon: open /var/lib/docker/volumes/juming-nginx/_data: no such file or directory.

嘗試方法一(不建議使用):

刪除所有容器

刪除所有鏡像

重新運行一個新的容器并掛載數據卷

# 1
docker rm -f $(docker ps -aq)

# 2
docker rmi -f $(docker images -aq)

# 3.
docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx

# 還是報錯

結論:

無法解決問題,且刪除所有容器、鏡像存在的風險較大,不建議使用!

嘗試方法二(推薦使用):

停止docker服務

重新啟動docker服務

再次運行容器

# 1
systemctl stop docker

# 2
systemctl restart docker

# 3
docker run -d -P --name nginx01 -v juming-nginx:/etc/nginx nginx

# 沒有報錯,docker ps查看 成功運行

結論

沒有報錯,docker ps查看,成功運行

docker volume ls 查看鏡像,可以看到具名數據卷juming-nginx已顯示出來了

docker volume ls
DRIVER    VOLUME NAME
local     a9b39215509378332ec9dfcdc3e10857b500694ea66efd9c2b7a6a9c55a2f10a
local     juming-nginx

原文鏈接:https://www.cnblogs.com/all-smile/p/16789104.html

欄目分類
最近更新