Fool's blog Fool's blog
首页
  • Ansible
  • Jenkins
  • Docker
  • Kubernetes
  • Linux常用命令
  • Git
  • Nginx
  • PVE
  • Samaba
  • Python
  • Go
GitHub (opens new window)

The Fool

运维萌新
首页
  • Ansible
  • Jenkins
  • Docker
  • Kubernetes
  • Linux常用命令
  • Git
  • Nginx
  • PVE
  • Samaba
  • Python
  • Go
GitHub (opens new window)
  • Docker

    • Docker基础命令
    • Dockerfile
      • 常用指令
      • vuepress-----nodejs
    • Harbor
  • K8S

  • 云原生
  • Docker
The Fool
2025-11-02
目录

Dockerfile

# Dockerfile

# 常用指令

- FROM:指定基础镜像,是所有 Dockerfile 的第一条指令
  示例:FROM golang:1.23-alpine
- WORKDIR:设置工作目录,后续指令会在该目录下执行
  示例:WORKDIR /app
- COPY:将构建上下文中的文件或目录复制到镜像中
  示例:COPY <src> <dest>
- ADD:类似 COPY,但支持 URL 下载和自动解压 tar 文件
  示例:ADD <src> <dest>
- RUN:执行 shell 命令并创建新的层
  示例:RUN apt update && apt install -y nginx
- ENV:设置环境变量
  示例:ENV <key>=<value>
- EXPOSE:声明容器监听的端口
  示例:EXPOSE <port>
- CMD:指定容器启动时执行的命令,可被 docker run 命令覆盖
  示例:CMD ["nginx", "-g", "daemon off;"]
- ENTRYPOINT:指定容器启动时执行的命令,不会被 docker run 命令覆盖
  示例:ENTRYPOINT ["executable", "param1", "param2"]
- VOLUME:创建挂载点,用于持久化数据或共享数据
  示例:VOLUME <path>
- LABEL:为镜像添加元数据(标签)
  示例:LABEL version="1.0" description="My App"
- USER:指定后续命令的执行用户
  示例:USER nginx
- HEALTHCHECK:配置容器健康检查
  示例:HEALTHCHECK [OPTIONS] CMD command
- ARG:定义构建时的变量,可通过 docker build --build-arg 传递
  示例:ARG VERSION=latest
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

这是一个简单的go项目,目录结构如下

1737184501325.png

然后再项目根目录下创建Dockerfile文件, 内容如下:

FROM golang:1.23-alpine

WORKDIR /app

COPY go.mod .
# RUN go mod download
COPY . .

RUN go build -o main .
# EXPOSE 8080

CMD [ "./main" ]
1
2
3
4
5
6
7
8
9
10
11
12

在项目根目录下执行

docker build -t golangtest .
1
docker run golangtest
1

结果如下图(我这里的tag为gotest)

1737184955299.png

# vuepress-----nodejs

Dockerfile

FROM  node:18-slim

WORKDIR /blog

COPY package*.json ./

COPY . ./

RUN npm install

EXPOSE 8080

VOLUME [ "/blog/docs" ]

CMD [ "npm" , "run", "docs:dev"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

.dockerignore

node_modules
.dockerignore
Dockerfile
.git
.gitignore
npm-debug.log
README.md
.vscode
1
2
3
4
5
6
7
8

构建镜像

docker build -t blog:v1 .
1

启动容器

docker run -it -d -p 8081:8080 -v /blog/vuepress/docs:/blog/docs blog:v1
1
#Docker
Docker基础命令
Harbor

← Docker基础命令 Harbor→

最近更新
01
viper
12-20
02
Jenkins基础
12-19
03
Jenkins实践
12-19
更多文章>
Theme by Vdoing | Copyright © 2024-2025 The Fool
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式