介绍
Docker 是一个开源的应用容器引擎,基于
Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),
几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
关于CE
和EE
的区别可以查看此篇文章:https://pal.run/articles/2019/12/21/1576858672872.html
安装
Centos 7.4 安装 Docker:
传送门
镜像
Docker 镜像是用于创建 Docker 容器的模板。
镜像操作
拉取 nginx 镜像
镜像列表
删除镜像
1
| sodu docker rmi <image id>
|
要删除全部 image 的话
1
| docker rmi $(docker images -q)
|
删除指定的镜像
1
| docker rmi mysql:latest
|
Dockerfile build 镜像
1
| docker build <目录> -t <镜像名>
|
容器
容器是独立运行的一个或一组应用。
容器操作命令
查看启动容器
删除容器
1
| docker rm <CONTAINER ID>
|
删除所有容器:
1
| docker rm $(docker ps -a -q)
|
自定义镜像
Dockerfile:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| # 一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
# ’#’ 为 Dockerfile 中的注释。
FROM golang:alpine as GO_BUILD
ENV GOPROXY=https://goproxy.io
ENV GO111MODULE=on
ENV GOPATH=/golang
# WORKDIR 相当于cd
WORKDIR $GOPATH/src/github.com/test
ADD ./ $GOPATH/src/github.com/test
ADD ./ $GOPATH/src/github.com/test
RUN go mod download
RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -installsuffix cgo -o cvs
# Base images 基础镜像
FROM scratch as prod
# MAINTAINER 维护者信息
MAINTAINER ydq
COPY --from=GO_BUILD /golang/src/github.com/test/ /opt/
# RUN apk add --no-cache ca-certificates tzdata
ENV TZ=Asia/Shanghai
# EXPOSE 映射端口
EXPOSE 9999
ENTRYPOINT ["/opt/test"]
|