數據卷
1.1、背景
前面有個docker go web demo應用示例,每次為了部署go_web_demo工程, 需要將使用到的cp的命令將宿主主機內的go_web_demo目錄下的代碼文件(一般是編譯后的二進制執行文件)復制到容器內部。 數據卷:將宿主主機的一個目錄映射到容器的一個目錄中。 可以在宿主主機中操作目錄中的內容,那么容器內部映射的文件,也會跟著一起改變。 |
1.2、操作
創建數據卷
# 創建數據卷 docker volume create 數據卷名稱 # 創建數據卷之后,默認回存放在一個目錄下 /var/lib/docker/volumes/數據卷名稱/_data |
查看數據卷詳細信息
docker volume inspect 數據卷名稱 |
查看全部數據卷
docker volume ls |
刪除數據卷
docker volume rm 數據卷名稱 |
1.3、應用
# 當你映射數據卷時,如果數據卷不存在,docker會自動創建。會將容器內部自帶的文件,存儲在默認的存放路徑中 docker run -v 數據卷名稱:容器內部的路徑 鏡像ID docker run -d -p 8080:8080 -v volume_tomcat:/usr/local/tomcat/webapps ef6a7c98d192 # 直接指定一個路徑作為數據卷的存放位置。這個路徑下是空的 docker run -v 路徑:容器內部的路徑 鏡像ID docker run -d -p 8080:8080 -v /opt/volume:/usr/local/tomcat/webapps ef6a7c98d192 |
docker 自定義鏡像
2.1、背景
中央倉庫上的鏡像,也是Docker的用戶自己上傳上去的 |
2.2、Dockerfile 文件介紹
#Dockerfile文件常用的內容 from:指定當前自定義鏡像依賴的環境 copy:將相對路徑下的內容復制到自定義鏡像中 workdir:聲明鏡像的默認工作目錄 cmd:需要執行的命令(在workdir下執行,cmd可以寫多個,只以最后一個為準) |
2.3、自定義鏡像示例:docker go_web_demo 鏡像
項目工程代碼:go_web_demo
Dockerfile文件:
FROM golang:alpine AS builder # 為我們的鏡像設置必要的環境變量 ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 # 移動到工作目錄:/build WORKDIR /build # 將代碼復制到容器中 COPY . . # 將我們的代碼編譯成二進制可執行文件 app RUN go build -o app . ################### # 接下來創建一個小鏡像 ################### FROM scratch # 從builder鏡像中把/dist/app 拷貝到當前目錄 COPY --from=builder /build/app / # 需要運行的命令 ENTRYPOINT ["/app"] |
制作鏡像
1、在項目目錄下,執行下面的命令創建鏡像,并指定鏡像名稱為go_web_app
docker build -t 鏡像名稱:[tag] . docker build -t go_web_app . |
2、運行鏡像
docker run -d -p 8088:8088 鏡像ID |