使用 Dockerfile 在容器中使用 Mkdir 命令创建目录
Docker 容器已经成为在不同环境中管理软件和依赖项的实际方式。 在处理实际应用程序时,毫无疑问,您需要先创建一个 Dockerfile,然后才能构建您的应用程序容器镜像。
使用 Dockerfile 在容器中使用 mkdir 命令创建目录
除了仅允许开发人员组合创建 Docker 映像所需的命令外,我们还可以使用 Dockerfile 做更多的事情。 要使用 Dockerfile 成功创建 Docker 镜像,您必须了解一些基本命令。
一些最常用的命令包括:
- FROM - 创建将要使用的父镜像/基础镜像层。
- WORKDIR - 允许我们设置工作目录。
- COPY - 允许我们将当前目录内容复制到容器中的目录中。
- PULL - 从您的 Docker 存储库添加文件。
- RUN - 当我们想要构建镜像时要执行的命令。
- CMD - 指定容器启动时要运行的命令。
- ENV - 定义构建期间使用的环境变量。
- ENTRYPOINT - 指定容器启动时要运行的命令。
- MAINTAINER - 指定镜像的作者。
使用上面的命令,我们可以创建一个 Dockerfile,如下所示,它使用 Python 作为基础镜像。
代码:
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
# Run the app
CMD ["echo", "Hello, Developer"]
这个 Dockerfile 是一个简单的 Flask 应用程序的一部分,它只在控制台上打印一条消息。 如果您有兴趣创建相同的应用程序,这里是 requirements.txt 文件。
click==8.0.4
Flask==2.0.3
gunicorn==20.1.0
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
Werkzeug==2.0.3
包含该主应用程序文件的主文件 app.py 如下所示。
代码:
from flask import Flask
app = Flask(__name__)
def hello():
print("Hello, this is a simple Flask application")
hello()
现在,要在我们的 Docker 容器的文件系统中使用 mkdir 命令创建一个目录,我们将使用如下所示的 RUN 命令。
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN mkdir -p /var/www/new_directory
# Run the app
CMD ["echo", "Hello, Developer"]
命令 RUN mkdir -p /var/www/new_directory
允许您在 Docker 文件系统中创建一个名为 new_directory 的目录,我们最终将使用使用上述 Docker 文件构建的映像构建该目录。
但是,我们将首先通过运行以下命令构建一个基于 Python 的 Docker 镜像作为基础镜像。
isaac@DESKTOP-HV44HT6:~/my-app$ docker build -t new_image .
输出结果:
确认我们已经使用下面的 docker images
命令从 Docker 文件成功构建了 Docker 镜像。
$ docker images
输出结果:
REPOSITORY TAG IMAGE ID CREATED SIZE
new_image latest 7ab964c50876 13 minutes ago 932MB
现在我们有了一个 Docker 镜像,我们可以继续创建一个 Docker 容器并确认是否创建了名为 new_directory 的目录。 如下所示,我们需要在容器内启动 Bash 以在 Docker 容器内导航目录。
$ docker run -it new_image bash
root@ea42f35d5404:/var/www#
您会注意到 new_directory 是在列出该目录中的文件后创建的。 除此之外,我们还可以导航目录本身,甚至可以在其中创建新文件。
root@ea42f35d5404:/var/www# ls
app.py new_directory requirements.txt
root@ea42f35d5404:/var/www# cd new_directory
root@ea42f35d5404:/var/www/new_directory# ls
root@ea42f35d5404:/var/www/new_directory# touch new_file
root@ea42f35d5404:/var/www/new_directory# ls
new_file
相关文章
在 Linux 中托管 Docker Internal
发布时间:2023/04/18 浏览次数:139 分类:Docker
-
Docker 允许开发人员通过将应用程序包装在称为容器的标准化单元中来高效地构建、测试和部署应用程序。 在使用 Docker 容器时,您可能会遇到需要将容器与主机连接的场景。
在 Docker 中设置工作目录
发布时间:2023/04/18 浏览次数:82 分类:Docker
-
在 Docker 中,我们可以通过编辑 Dockerfile 并添加密钥 WORKDIR 来设置我们的工作目录。本文将讨论在 Docker 中更改我们当前和默认的工作目录。
在 Docker 容器中公开多个端口
发布时间:2023/04/18 浏览次数:143 分类:Docker
-
Docker 容器使用端口来实现万维网上不同设备之间的通信。 在本篇文章中,我们将学习如何使用 Nginx 应用程序在 Docker 容器中公开多个端口。
将用户添加到 Docker 容器
发布时间:2023/04/18 浏览次数:187 分类:Docker
-
在本文中,我们将学习如何通过实现返回产品数组的 Express 应用程序将用户添加到 Docker 容器。
使用 Docker 网络主机命令
发布时间:2023/04/18 浏览次数:112 分类:Docker
-
在本文中,我们将学习如何使用 --network 命令将容器添加到主机网络。 如果我们不使用此命令指定网络,我们还将了解如何将容器添加到默认网络。
清除 Docker 容器日志
发布时间:2023/04/18 浏览次数:181 分类:Docker
-
本文介绍了我们可以用来清除 docker 容器中日志的不同方法。日志是应用程序在特定事件或状态发生时记录的信息,它们帮助我们监控应用程序并采取必要的措施。
Dockerfile 中 COPY 和 ADD 命令的区别
发布时间:2023/04/18 浏览次数:158 分类:Docker
-
在 Dockerfile 中,我们可以使用 COPY 或 ADD 命令复制这些文件。 这些命令在功能上是相同的; 但是,存在一些差异。本文介绍了 Dockerfile 中 COPY 和 ADD 命令之间的区别。