- [YouTube] How to Get Started with Docker
摘要 | Notes
简单来说,利用 Docker 你可以实现为你的项目准备一个完备的部署环境,它被封装为镜像;并且它能够轻量、方便地部署在其他环境上,用镜像得到的本地化容器称为实例。制作镜像
制作镜像的主要内容就是如何写Dockerfile
(和.dockerignore
,这个和.gitingore
写法基本一致,不再介绍)。
主要结构如下:(以某个 Go 项目为例) ```dockerfile选取一个 go 的官方镜像作为基础 作为 编译环境
FROM golang:1.18 AS builder
设置一些环境变量,其中三个是 golang 所需要的;WORKDIR 是为了方便下面使用而设置的
ENV GOPROXY=https://mirrors.aliyun.com/goproxy/,direct \ GO111MODULE=on \ CGO_ENABLED=0 \ WORKDIR=/tmp/src/
运行 ‘mkdir -p $WORKDIR’ 来创建工作目录
RUN mkdir -p $WORKDIR
将 . 下的内容全部复制到 $WORKDIR ,也就是 /tmp/src/
COPY . $WORKDIR
进入工作目录 并且 进行 go 的包管理操作
RUN cd $WORKDIR && go mod download all
进入工作目录 并且 编译
RUN cd $WORKDIR && go build -o /fileName
选取 alpine 作为运行环境
FROM alpine:3.15.2
复制文件内容
COPY —from=builder /fileName /fileName
在启动容器时运行该命令
CMD [“/fileName”]
<a name="BFMnE"></a>
## 本地使用
```shell
sudo docker pull {image name}
sudo docker run -it {image name} {entrance}
sudo docker start {container id}
sudo docker stop {container id}
sudo docker exec -ti {container id} {entrance}
sudo docker container ...
sudo docker image ...