docker images怎么会看到没名字的镜像

 我来答
匿名用户
2016-12-18
展开全部
第一步:创建运行环境 现在Docker还只能在Linux上运行,所以你必须找一台Linux机器或者装了Linux虚拟机的机器来运行Docker;你在这里可以找到Docker的安装步骤或者通过参考这篇文章Getting Started with Docker On Azure(在Azure云端安装Docker的起步教程)。当然你可以从Azure云获取一个安装好Docker的Linux虚拟运行环境。 这个教程假设你已经在Azure上有了安装好Docker的Linux虚拟机。如果你拥有其它类似的运行环境,那这个教程也是可以使用的。 第二步:为你的ASP:aspnet/Home.git aspnet-Home 切换到aspnet-Home的sample目录下: cd aspnet-Home/samples/HelloWeb 完成后目录结构应该如下所示: ├── Startup.cs ├── image.jpg └── project.json 然后我们在此目录下创建一个名叫Dockerfile的文件,并输入如下指令: FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["kpm", "restore"] EXPOSE 5004 ENTRYPOINT ["k", "kestrel"] 让我们逐条解释此Dockerfile中命令的含义: 第一行中FROM命令后面的‘microsoft/aspnet’说明我们要下载Docker Hub中名为‘microsoft/aspnet’(此镜像也是ASP.NET在Docker Hub上的官方镜像)的镜像作为我们例子程序的“基础镜像”; COPY命令告诉Docker在构建镜像的时候同时将当前目录(译者注:.表示当前目录)下的所有文件(译者注:Startup.cs、image.jpg与project.json这三个文件)拷贝到容器的/app目录下;紧接着,使用WORKDIR命令告诉Docker将容器启动目录设置为/app目录; RUN [kpm, restore]命令告诉Docker运行kpm restore命令安装ASP.NET相关依赖项,这些都是Docker在第一次运行此容器之前要做的准备工作; EXPOSE 5004命令会告诉Docker正在构建的镜像有个监听5004号端口的服务(可以查看project.json文件确认)(译者注:意思是以此镜像为基础运行的容器需要向外暴露5004号端口); 最后,ENTRYPOINT [k, kestrel]命令说明每次用Docker启动此容器时都会自动执行k kestrel命令,同时通过运行此命令保证容器始终在运行不退出,其实kestrel命令就是启动了ASP.NET 5的服务器,启动此服务器后会启动一个监听5004号端口的进程,处理HTTP连接请求。(译者注:这就是为什么要向外暴露5004号端口的原因。) 第三步:创建镜像 当我们编写完Dockerfile后,当前目录应该是如下结构,Dockerfile和程序源代码在一起: ├── Dockerfile ├── Startup.cs ├── image.jpg └── project.json 现在我们来创建此Docker镜像。这个过程非常简单——运行Docker的build命令即可,命令如下: docker build -t myapp . 这条命令运行结束后Docker就生成了一个名为myapp的镜像;同时,你对镜像所做的任何变化都能通过重新运行此命令来生成一个新的镜像。在你的Linux虚拟机或者开发环境中运行docker images命令可以看到我们刚刚创建的myapp镜像了: $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE myapp latest ccb7994d2bc1 39 seconds ago 499.8 MB microsoft/aspnet latest 16b1838c0b34 12 days ago 473.4 MB 你可以看到你的应用镜像以及ASP.NET镜像都存在于你的主机上。 现在我们开始讲如何将ASP.NET应用程序部署到云端。 第四步:运行容器 运行一个容器非常的简单,通过运行以下命令可以在你的开发机上启动myapp容器: docker run -t -d -p 80:5004 myapp -t表示附加一个伪终端(tty)到容器(在以后的ASP.NET 5版本中可能不在需要); -d表示以后台的方式运行容器,如果不使用此标识的话,ASP.NET运行时后台的输入/输出流信息就会显示在你的终端上; -p 80:5004告诉Docker将容器的5004号端口映射到宿主机的80号端口上。这样,宿主机80号端口接收的数据包就会被转发到容器的5004号端口上了; 最后,myapp是镜像的名称,我们可以用这个名称来启动之前Dockerfile构建的镜像。 容器启动之后(译者注:容器和镜像的区别就相当于OO中的对象和实例,对象是编译时的概念,实例是运行时的概念。以这样理解,容器是运行时的镜像。),可以通过以下命令查看容器运行的状态: $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f70bd9ffbc36 myapp:latest "/bin/sh -c 'k kestr About a minute ago Up About a minute 0.0.0.0:80->5004/tcp mad_goodall 好的,容器启动了!但是我们的演示还没结束,我们还要完成Azure VM的终端端口映射(endpoint port mapping for Azure VM)
浙江启扬智能科技有限公司
2023-08-23 广告
作为浙江启扬智能科技有限公司的工作人员,回答如下:ARM开发板通常使用Linux系统,这是因为Linux在嵌入式系统开发中有着广泛的应用和丰富的资源。在Linux环境下开发可以更好地支持ARM架构,并且Linux具有强大的工具链和开源的软件... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式