docker制作自己的镜像并上传dockerhub
Docker/容器
510
0
0
2022-07-27
项目下载链接
gitee.com/wanjimao/greet.git
编写dockerfile
因为php比较麻烦,本次以go项目为例
| FROM golang:alpine AS builder |
| |
| LABEL stage=gobuilder |
| |
| ENV CGO_ENABLED 0 |
| ENV GOOS linux |
| ENV GOPROXY https://goproxy.cn,direct |
| |
| WORKDIR /build/zero |
| |
| ADD go.mod . |
| ADD go.sum . |
| RUN go mod download |
| COPY . . |
| COPY service/hello/etc /app/etc |
| RUN go build -ldflags="-s -w" -o /app/hello service/hello/hello.go |
| |
| FROM alpine |
| |
| RUN apk update |
| ENV TZ Asia/Shanghai |
| |
| WORKDIR /app |
| COPY |
| COPY |
| CMD ["./hello", "-f", "etc/hello-api.yaml"] |
打包镜像
docker build -t hello:v1 -f service/hello/Dockerfile .
| luwei@luweideMacBook-Pro-2 greet % docker build -t hello:v1 -f service/hello/Dockerfile . |
| [+] Building 89.0s (13/13) FINISHED |
| => [internal] load build definition from Dockerfile 0.0s |
| => => transferring dockerfile: 629B 0.0s |
| => [internal] load .dockerignore 0.0s |
| => => transferring context: 2B 0.0s |
| => [internal] load metadata for docker.io/library/golang:alpine 79.4s |
| => [1/8] FROM docker.io/library/golang:alpine@sha256:55da409cc0fe11df63a7d6962fbefd1321fedc305d9969da636876893e289e2d 0.0s |
| => [internal] load build context 0.0s |
| => => transferring context: 4.44kB 0.0s |
| => CACHED [2/8] WORKDIR /build/zero 0.0s |
| => CACHED [3/8] ADD go.mod . 0.0s |
| => CACHED [4/8] ADD go.sum . 0.0s |
| => CACHED [5/8] RUN go mod download 0.0s |
| => [6/8] COPY . . 0.4s |
| => [7/8] COPY service/hello/etc /app/etc 0.0s |
| => [8/8] RUN go build -ldflags="-s -w" -o /app/hello service/hello/hello.go 8.5s |
| => exporting to image 0.6s |
| => => exporting layers 0.6s |
| => => writing image sha256:a4bbb622bd909fe136fb5c0f714f1661b07d30cff24982a373c6c51f7670f789 0.0s |
| => => naming to docker.io/library/hello:v1 |
打包结果
docker images
| luwei@luweideMacBook-Pro-2 /tmp % docker images |
| REPOSITORY TAG IMAGE ID CREATED SIZE |
| hello v2 6f23d965fb2f 14 hours ago 17.7MB |
上传到dockerhub
.进入链接 registry.hub.docker.com/


修改容器信息
docker tag 6f23d965fb2f 2781897595/hello_test:v2
| luwei@luweideMacBook-Pro-2 ~ % docker tag 6f23d965fb2f 2781897595/hello_test:v2 |
| luwei@luweideMacBook-Pro-2 ~ % |
| luwei@luweideMacBook-Pro-2 ~ % docker images |
| REPOSITORY TAG IMAGE ID CREATED SIZE |
| 2781897595/hello_test v2 6f23d965fb2f 14 hours ago 17.7MB |
| hello v2 6f23d965fb2f 14 hours ago 17.7MB |
| <none> <none> fa9cda232ad4 16 hours ago 1.3GB |
推上去
git push docker push 2781897595/hello_test:v2
| luwei@luweideMacBook-Pro-2 ~ % git push docker push 2781897595/hello_test:v2 |
| fatal: not a git repository (or any of the parent directories): .git |
| luwei@luweideMacBook-Pro-2 ~ % |
| luwei@luweideMacBook-Pro-2 ~ % docker push 2781897595/hello_test:v2 |
| The push refers to repository [docker.io/2781897595/hello_test] |
| 723e1838e8f9: Pushed |
| 0b308dbc5609: Pushed |
| 6050dcf697b5: Pushed |
| 467d9565d60a: Pushed |
| 1a058d5342cc: Mounted from library/alpine |
| v2: digest: sha256:9d07cfc1f7266404e457bb39289b6dc5b88a5a7a83a4ef0a673f2053db07980b size: 1363 |
| luwei@luweideMacBook-Pro-2 ~ % |
查看

| luwei@luweideMacBook-Pro-2 ~ % docker search 2781897595 |
| NAME DESCRIPTION STARS OFFICIAL AUTOMATED |
| 2781897595/hello_test 测试应用 0 |
| 2781897595/donglei 自己测试使用 0 |
| luwei@luweideMacBook-Pro-2 ~ % |
编写docer-compose
| hello_test: |
| image: 2781897595/hello_test:v2 |
| container_name: hello_test111 |
| restart: always |
| ports: |
| - 8889:8889 |
执行结果
docker-compose up -d hello_test
| luwei@luweideMacBook-Pro-2 lnmp % docker-compose up -d hello_test |
| Creating hello_test111 ... done |
查看容器
| luwei@luweideMacBook-Pro-2 /tmp % docker ps |
| CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
| 6dd6c58c2965 2781897595/hello_test:v2 "./hello -f etc/hell…" 49 seconds ago Up 16 seconds 0.0.0.0:8889->8889/tcp hello_test111 |
| 6b0f04545e93 kibana:6.8.13 "/usr/local/bin/kiba…" 41 hours ago Up 38 hours 0.0.0.0:5601->5601/tcp kibana |
请求容器
| luwei@luweideMacBook-Pro-2 /tmp % curl -i http://localhost:8889/from/you |
| HTTP/1.1 200 OK |
| Content-Type: application/json |
| X-Trace-Id: e91e56360cb01195c2614bd21c2a9016 |
| Date: Wed, 24 Nov 2021 02:36:54 GMT |
| Content-Length: 14 |
| |
| {"message":""}% |
| luwei@luweideMacBook-Pro-2 /tmp % |
结束