use*_*895 5 docker boot2docker
我观看了大量的YouTube视频,并阅读了所有的docker文档.但是我仍然没有得到阻止我理解docker的核心概念.我正在使用Windows并安装了boot2docker.我从docker hub下载了图像并运行了基本命令.但是如何将现有应用程序放在我的本地计算机上(为简单起见,我们只能说它有一个文件'index.php').我该如何处理并将其放入泊坞窗图像并运行它?
col*_*ict 10
你的index.php实际上不是一个应用程序.该应用程序是您的Apache或nginx,甚至是PHP自己的服务器.
由于Docker使用Windows核心中不可用的功能,因此您在实际的虚拟机中运行它.唯一的目的是为您的真实服务器环境培训或准备图像.
Docker需要了解两个主要概念:图像和容器.
一个图像是一个层组成的模板.每个层仅包含前一层和一些离线系统信息之间的差异.每一层都是一个图像.你应该始终从现有基础,使图像,使用从指令Dockerfile(参考文档编辑时的时间.现在一月弗拉基米尔Mostert的链接是404).
甲容器是图像,已经运行或者当前正在运行的实例.创建容器(也称为运行图像)时,可以将内部目录从中映射到外部.如果两个位置都有文件,则外部目录会覆盖图像内的文件,但这些文件不会丢失.要恢复它们,您可以向图像提交容器(最好在停止后),然后从新图像启动一个新容器,而不映射该目录.
想象一下,你有以下现有的python2应用程序"hello.py",其中包含以下内容:
print "hello"
Run Code Online (Sandbox Code Playgroud)
您必须执行以下操作才能将此应用程序停靠:
创建一个您想要存储Dockerfile的文件夹.
创建一个名为"Dockerfile"的文件
Dockerfile包含几个部分,您必须按如下所述进行定义:
与VM一样,映像具有操作系统.在这个例子中,我使用的是ubuntu 16.04.因此,Dockerfile的第一部分是:
FROM ubuntu:16.04
Run Code Online (Sandbox Code Playgroud)
想象一下,你有一个新的Ubuntu - VM,现在你必须安装一些东西来让你的应用程序正常工作,对吧?这是由Dockerfile的下一部分完成的:
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y python
Run Code Online (Sandbox Code Playgroud)
对于Docker,您必须在图像中创建一个工作目录.稍后要执行以启动应用程序的命令将在此目录中搜索文件(例如我们的python文件).因此,Dockerfile的下一部分创建一个目录并将其定义为工作目录:
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
Run Code Online (Sandbox Code Playgroud)
下一步,将存储Dockerfile的文件夹的内容复制到映像中.在我们的示例中,hello.py文件被复制到我们在上面的步骤中创建的目录中.
COPY . /usr/src/app
Run Code Online (Sandbox Code Playgroud)
最后,以下行在您的映像中执行命令"python hello.py":
CMD [ "python", "hello.py" ]
Run Code Online (Sandbox Code Playgroud)
完整的Dockerfile如下所示:
FROM ubuntu:16.04
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y python
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
CMD [ "python", "hello.py" ]
Run Code Online (Sandbox Code Playgroud)
通过在终端中键入来保存文件并构建映像:
$ docker build -t hello .
Run Code Online (Sandbox Code Playgroud)
这需要一些时间.然后,检查图像"hello"我们在最后一行中如何调用它已成功构建:
$ docker images
Run Code Online (Sandbox Code Playgroud)
运行图像:
docker run hello
Run Code Online (Sandbox Code Playgroud)
输出呼叫在终端中是"你好".
这是第一次开始.将Docker用于Web应用程序时,必须配置端口等.
| 归档时间: |
|
| 查看次数: |
10978 次 |
| 最近记录: |