docker入门
docker常用命令
1
2
3
4
5
6
7
8
9
10
11
12
docker images # 显示所有容器镜像
docker ps -all # 列出所有的docker容器(所有状态)
docker pull # 拉取镜像
docker start|stop # 启动或者停止镜像
docker rm docker_name # 删除容器
docker rmi image_name # 删除镜像
docker logs -f docker_name # 查看docker容器日志
docker run --name container_name image_name # 通过镜像启动容器,并为容器命名
docker run -i -t -d -P -p -e key=value docker_name image command # -t 在新容器内制定一个伪终端或终端 -i 允许你对容器内的标准输入进行交互 -d 后台模型运行容器 -P 将容器内部使用的网络端口随机映射到我们使用的主机上 -p 指定映射的端口 -e key=value 设置环境变量
docker exec -it docker_name command # 进入容器,使用该命令退出容器时不会导致容器的停止
docker commit -m "commit info" -a="author" container_id image_name # 创建一个新镜像
docker tag Image_id image_name:new_tag
容器的状态
- created
- restarting
- running
- removing
- paused
- exited
- dead
docker镜像属性
- Repository:表示镜像的仓库源
- TAG:镜像的标签,如果不指定,默认tag为latest
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
Dockerfile
- Dockerfile的指令没执行一次都会在docker上新建一层,过多无意义的层,会造成镜像膨胀过大
- 可以使用&&连接符连接命令,这样只会创建一层镜像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 第一阶段:构建阶段 定制的镜像是基于FROM的镜像,后续的操作都是基于nginx操作
FROM golang:1.19 AS builder
# 设置工作目录
WORKDIR /app
# 复制 Go 源码到工作目录, COPY <src> <dest> src是宿主机的目录 dest是镜像的目录
COPY . .
# 编译 Go 应用程序
RUN go build -o hello
# 第二阶段:运行阶段 alpine Linux 是一个轻量级的 Linux 发行版镜像
FROM alpine:latest
# 设置工作目录
WORKDIR /app
# 从构建阶段复制编译后的二进制文件到运行阶段
COPY --from=builder /app/hello .
# 运行二进制文件
CMD ["./hello"]
- 基于dockerfile创建镜像
1
2
3
4
docker build -t image_name:image_tag context_path
# 使用build命令创建镜像
# 需要在dockerfile文件存放的目录下 执行该命令
# context_path 用于指定上下文的目录,即宿主机的目录,用于传送文件到镜像目录
This post is licensed under CC BY 4.0 by the author.