Docker实验(三)Dockerfile常用指令的相关实验

本文详细介绍了Dockerfile的常用指令,包括FROM、MAINTAINER、COPY、ADD、ENV、EXPOSE、VOLUME、WORKDIR、RUN、CMD、ENTRYPOINT等,并通过实验展示了这些指令的实际应用,如构建镜像、设置环境变量、端口映射等。同时,文章对比了Shell和exec格式的ENTRYPOINT在使用上的区别,并提供了示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.概念讲解

  • (一)dockerfile 最佳实践
    在这里插入图片描述
  • (二)dckerfile常用指令
    1.FROM:指定base镜像,如果本地不存在会从远程仓库下载。
    2.MAINTAINER:设置镜像的作者,比如用户邮箱等。
    3.COPY:把文件从build context复制到镜像,支持两种形式:COPY src dest 和 COPY [“src”, “dest”],src必须指定build context中的文件或目录
    4.ADD:用法与COPY类似,不同的是src可以是归档压缩文件,文件会被自动解压到dest,也可以自动下载URL并拷贝到镜像:ADD html.tar /var/www ADD http://ip/html.tar /var/www
    5.ENV:设置环境变量,变量可以被后续的指令使用:ENV HOSTNAME sevrer1.example.com
    实验开始:
    6.EXPOSE:如果容器中运行应用服务,可以把服务端口暴露出去:,EXPOSE 80
    7.VOLUME:申明数据卷,通常指定的是应用的数据挂在点:VOLUME ["/var/www/html"]
    8.WORKDIR:为RUN、CMD、ENTRYPOINT、ADD和COPY指令设置镜像中的当前工作目录,如果目录不存在会自动创建。
    9.RUN:在容器中运行命令并创建新的镜像层,常用于安装软件包:RUN yum install -y vim
    10.CMD 与 ENTRYPOINT:这两个指令都是用于设置容器启动后执行的命令,但CMD会被docker run后面的命令行覆盖,而ENTRYPOINT不会被忽略,一定会被执行。docker run后面的参数可以传递给ENTRYPOINT指令当作参数。Dockerfile中只能指定一个ENTRYPOINT,如果指定了很多,只有最后一个有效。

二.Dockerfile常用指令的相关实验

(一)指令(run,copy,cmd的使用)
1.进入/tmp下删除所有内容并创建一个目录,在此目录下建立一个文件(此文件用于)

[root@server1 ~]# cd /tmp
[root@server1 tmp]# rm -rf *
[root@server1 tmp]# mkdir docker/
[root@server1 tmp]# cd docker/
[root@server1 docker]# vim Dockerfile
[root@server1 docker]# cat Dockerfile

在这里插入图片描述
文件中的内容如下:

FROM rhel7

2.删除掉没有用的读写层

#查看docker的镜像
[root@server1 docker]# docker images
#删除docker的v1镜像
[root@server1 docker]# docker rmi ubuntu:v1
#删除docker的v2镜像,发现会报错,因为之前没有关闭容器
[root@server1 docker]# docker rmi ubuntu:v2

在这里插入图片描述

#查看容器的进程
[root@server1 docker]# docker ps -a
#首先删除容器,必须先关闭容器,因为之前没有关闭容器(即没有使用ctrl+d或exit,而是使用了ctrl+q+p)
[root@server1 docker]# docker stop vm2
[root@server1 docker]# docker rm vm2
[root@server1 docker]# docker rmi ubuntu:v2

3.检查是否将没有用的内容全部删除

[root@server1 docker]# docker images
[root@server1 docker]# docker ps -a

在这里插入图片描述
4.将rhel7镜像导入并查看镜像以及分层结构

[root@server1 docker]# cd
[root@server1 ~]# docker load -i rhel7.tar 
[root@server1 ~]# docker images
[root@server1 ~]# docker history rhel7:latest 

在这里插入图片描述
5.创建r

### 关于Docker基础实战教程中的Dockerfile实验 在探讨Docker基础实战教程中涉及的Dockerfile相关内容时,理解其核心概念对于有效利用容器化技术至关重要。Dockerfile是用来构建Docker镜像的构建文件,由一系列命令和参数构成的脚本[^1]。 #### 创建基于CentOS的基础镜像 当创建一个简单的`Dockerfile`用于构建基于CentOS的操作系统环境时,通常会遵循如下模式: ```dockerfile FROM centos:latest LABEL maintainer="admin@example.com" RUN yum update -y && \ yum install -y vim net-tools iproute telnet which curl wget git openssh-server && \ yum clean all CMD ["/bin/bash"] ``` 这段代码展示了如何定义一个基本的Linux开发环境,其中包含了常用的工具和服务安装指令。 #### 使用Dockerfile的最佳实践 生产环境中推荐优先采用Dockerfile来构建镜像,因为这种方式提供了诸多优势,比如可重复性和自动化部署能力等特性[^2]。通过编写清晰、简洁且易于维护的Dockerfile,能够显著提高团队协作效率并减少人为错误的发生概率。 #### 完成头歌平台上指定任务的具体操作指南 针对特定平台上的练习题目解答可能有所不同,在此提供一般性的指导原则作为参考: - **仔细阅读文档**:确保充分了解所给定的任务描述以及任何附加说明。 - **参照官方资源**:查阅[Docker官方文档](https://docs.docker.com/)获取最权威的信息支持。 - **尝试动手实操**:理论联系实际有助于加深理解和记忆效果;可以通过修改现有例子或自行设计场景来进行更多探索性学习活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值