关于docker的几个概念(三)

目录

  • [1. Dockerfile构建镜像出现异常,如何排查?](#1. Dockerfile构建镜像出现异常,如何排查?)
  • [2. Dockerfile的基本指令有哪些?](#2. Dockerfile的基本指令有哪些?)
  • [3. 如何进入容器?使用哪个命令](#3. 如何进入容器?使用哪个命令)

1. Dockerfile构建镜像出现异常,如何排查?

首先,Dockerfile是一层一层的构建镜像,期间会产生一个或多个临时容器,构建过程中其实就是在临时容器里面安装应用,如果因为临时容器安装应用出现异常导致镜像构建失败,这时容器虽然被清理掉了,但是期间构建的中间镜像还在,那么我们可以根据异常时上一层已经构建好的临时镜像,将临时镜像运行为容器,然后在容器里面运行安装命令来定位具体的异常。

其次,构建过程中产生的任何输出都会记录在构建日志中。可以通过运行 docker build 命令时添加 -v 或 --verbose 参数来获取更详细的构建日志。例如:

bash 复制代码
docker build -v -t my_image .

2. Dockerfile的基本指令有哪些?

  1. FROM: 指定基础镜像。这是 Dockerfile 中的第一个指令,用于指定构建镜像所基于的父镜像。
  2. MAINTAINER: 设置镜像的维护者信息。虽然不是必需的,但提供这些信息有助于跟踪和联系维护者,如作者名字,日期,邮件,联系方式等。
  3. COPY: 将本地文件复制到镜像内。此指令将文件从构建上下文复制到镜像中的指定位置。
  4. ADD: 类似于 COPY,但 ADD 支持自动解压缩某些文件类型(如 tar、zip 等),并且还可以通过 URL 下载文件。
  5. ENV: 设置环境变量。这些变量可以在后续的 Dockerfile 指令中使用,也可以在运行容器时使用。
  6. EXPOSE: 声明容器将监听的端口。这仅用于信息目的,并不会使端口真正对外可用。
  7. VOLUME: 创建数据卷。允许容器内的数据持久化,即使容器被删除后数据仍然存在。
  8. WORKDIR: 设置工作目录。为随后的 RUN、CMD、ENTRYPOINT 指令提供一个默认的工作目录。
  9. RUN: 执行命令。通常用于安装软件包或其他预构建任务。
  10. CMD: 定义容器启动时执行的默认命令。如果 Dockerfile 中有多个 CMD 指令,则只有最后一个生效。
  11. ENTRYPOINT: 指定容器启动时运行哪些命令,如果有多个ENTRYOINT,则只有最后一个生效,另外,如果Dockerfile中同时存在CMD和ENTRYOINT,那么CMD或docker run之后的参数将被当做参数传递给ENTRYOINT。

3. 如何进入容器?使用哪个命令

进入已运行的容器有两种常用方法:

  1. docker attach: 此命令允许你连接到正在运行的容器的控制台。例如:
bash 复制代码
docker attach <container_id_or_name>
  1. docker exec: 可以在运行中的容器内启动一个新进程。这对于运行交互式 shell 特别有用。例如:
bash 复制代码
docker exec -it <container_id_or_name> /bin/bash
相关推荐
硅基手札8 分钟前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
修心光30 分钟前
记录一次,jenkins打包异常问题
运维·jenkins
分布式存储与RustFS38 分钟前
JuiceFS 接 RustFS 当数据后端:把对象存储挂成本地文件系统
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
CANI_PLUS2 小时前
电脑文件共享
运维·服务器
Decay__2 小时前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
Linux界最忧郁之人2 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
后台模板学习2 小时前
GitHub Actions 与 Jenkins 在日志监
运维·github·jenkins
whyutianict_vv2 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai
杨云龙UP3 小时前
Oracle 同义词(SYNONYM)详解及 Toad for Oracle SQL 智能补全配置实战
运维·数据库·sql·oracle·同义词·toad·toad for oracle
晨陌y3 小时前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器