docker~从Dockerfile到Container的过程(终于算是OK了)

上一文章,主要介绍Dockerfile里各参数的含义,以及在项目文件里这些内容的含义,因为大叔认为官方和网上其它文章说的有些模棱两可,不太好让大家理解,所有我又从新写了一个大白话的文章,希望可以给大家一些帮助.<DotNetCore跨平台~Dockerfile的解释

本文章主要对一个windows下的dotnet new api生成的项目进行迁移,将它存储为一个镜像,然后运行这个镜像,生成一个容器,容器对外开放5000端口,大家就可以通过5000来访问它了,说起来很容易,做起来有些坑!

Docerfile和DotnetCore部署的过程

  1. 项目需要在windows里恢复,生成一下,dotnet restore和dotent publish
  2. 我们在docker里使用的是生成后的东西,比较如目录是项目下的obj/docker/publish
  3. 你的Dockerfile与obj目录是同一级的
  4. 使用docker build '加你的项目根目录路径"
  5. 使用docker run -it -p 5000:5000 imageId 运行起一个容器来,同时向外监听了5000端口

做起来

1 通过dotnet new生成一个项目,路径:C:\Users\lind\hellomvc

2 我们在docker里使用的是生成后的东西,比较如目录是项目下的obj/docker/publish

3 你的Dockerfile与obj目录是同一级的

Dockerfile的内容如下

#基于microsoft/dotnet 来构建我们的镜像,它有800多兆,不是300多兆那个
FROM docker.io/microsoft/dotnet
MAINTAINER lind
#设置Docker容器对外暴露5000端口
EXPOSE 5000
#输入参数
ARG source
#如果输入参数source为空,就使用当前目录下的bin/Release/PublishOutput作为发布目录
COPY ${source:-obj/Docker/publish} ./hellomvc
#将容器当前目录设为hellmvc
WORKDIR hellomvc
#在容器中运行dotnet这个命令
ENTRYPOINT ["dotnet","hellomvc.dll"]

4 使用docker build '加你的项目根目录路径"

这个命令是在linux平台执行的,下面看一下我们项目的路径,可以使用xft,xshell等工具,方式操作,使用xft把整个项目都复制到linux下的/root/project目录

在xshell中连接你的linux主机,输入下面的命令,生成一个新的镜像

如果希望为source输入参数指定新的值,可以使用下面语句

#docker build "/root/project/coreMvc/" --build-arg source="/root/project/coreMvc/bin/Release/PublishOutput"

如果上面出现目录未找到的问题,请像发布目录设备为:obj\Docker\publish

5 使用docker run -it -p 5000:5000 imageId 运行起一个容器来,同时向外监听了5000端口

镜像生成后,我们使用docker run 去启动一个容器!

启动后,它将监听5000这个端口,IP地址就是linux主机的,我们在外面可以通过linux ip:5000来访问它

如果你希望对外暴露8000端口,可以这样写docker run -it -p 8000:5000 7c8d43fe67f9,这样,相同的网站被你在两个容器中共同执行了,或者说一个网站多了一个"负载"的支持,看到这里你是否想起什么了,对就是负载均衡,你的环境部署更简单了,一个项目可以在很短的时间被部署起来,再配上反射代理(nginx,lvs),一个网站负载就搭好了!

这个命令可以为你的镜像重命名

docker tag 7c8d43fe67f9 helloapi:1.0

当然,如果你的阿里云有自己的镜像,也可以把这个镜像改名成阿里云的奖项,然后把这个本地的镜像push到云上,方便在其它服务器上使用它

希望这篇文章可以帮助刚开始学docker的学生们,大家有问题可以直接与我联系!

docker是一种新的技术,它在未来将会再火一把!

一个镜像,到处执行!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:docker~从Dockerfile到Container的过程(终于算是OK了),如需转载请自行联系原博主。

时间: 2024-10-26 10:35:46

docker~从Dockerfile到Container的过程(终于算是OK了)的相关文章

Docker使用Dockerfile创建支持ssh服务自启动的容器镜像_docker

本文实例为大家分享了Dockerfile创建支持ssh服务自启动的容器镜像,供大家参考,具体内容如下 1. 首先创建一个Dockerfile文件,文件内容如下 # 选择一个已有的os镜像作为基础 FROM centos:centos6 # 镜像的作者 MAINTAINER Fanbin Kong "kongxx@hotmail.com" # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no RUN yum install -y openssh

Setting up a Production Docker Environment with Alibaba Container Service

Due to the portability, flexibility, and maintainability of containers, it's no surprise that Docker is a favorite amongst DevOps practitioners. Nearly every tech company-and a not-insignificant number of non-tech companies-use Docker in some fashion

Docker的images和container啥关系

问题描述 我看过一些文章,还是有一些疑问DockerimagesADockerimageisaread-onlytemplate.Forexample,animagecouldcontainanUbuntuoperatingsystemwithApacheandyourwebapplicationinstalled.ImagesareusedtocreateDockercontainers.Dockerprovidesasimplewaytobuildnewimagesorupdateexist

阿里云部署Docker(9)----Dockerfile脚本定制你的镜像

本文为原创文章,转载需注明转自:http://blog.csdn.net/minimicall?viewmode=contents 技术爱好者都是比较懒的.而docker又是开发者支持起来的.所以,它肯定是有比较懒的方式供我们定制自己需要的东西. docker build docker 用build指令来执行dockerfile脚本. 具体的用法: sudo docker build . 小心后面那个点,表示当前目录.当前目录有一个Dockerfile的文件. 当然,你可以指定你建立的镜像的名字

阿里云部署Docker(9)----Dockerfile脚本定制镜像

本文为原创文章,转载需注明转自:http://blog.csdn.net/minimicall?viewmode=contents 技术爱好者都是比较懒的.而docker又是开发者支持起来的.所以,它肯定是有比较懒的方式供我们定制自己需要的东西. docker build docker 用build指令来执行dockerfile脚本. 具体的用法: [java] view plaincopy sudo docker build .   小心后面那个点,表示当前目录.当前目录有一个Dockerfi

Docker 之 Dockerfile

Dockerfile 命令介绍 1.FROM 构建一个属于自己的镜像需要依赖一个基础镜像,就是指定一个官方提供的一个base image.在这个基础之上构建.例如使用daocloud.io提供的centos7作为基础镜像.FROM必须是第一行 FROM daocloud.io/centos:7 2.LABEL 一些注释信息,多行的话可以使用反斜线,以下三种方式 # Set one or more individual labels LABEL com.example.version="0.0.1

docker学习(3) 容器的启动过程

这一节我们来稍微了解下docker原理性的东西 docker run -i -t ubuntu /bin/bash 输入上面这行命令,启动一个ubuntu容器时,到底发生了什么? 大致过程可以用下图描述: 首先系统要有一个docker daemon的后台进程在运行,当刚才这行命令敲下时, 1. docker client(即:docker终端命令行)会调用docker daemon请求启动一个容器, 2. docker daemon会向host os(即:linux)请求创建容器 3. linu

CentOS 7安装Docker服务详细过程_docker

Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. Docker 官网:http://www.docker.com/ Docker 官方文档:https://docs.docker.com/ Docker Github 地址:https://github.com/docker/docker Docker 仓库:https:

Docker实践者不能错过2014 Container技术大会的九大理由!

摘要:2014年10月18日,CSDN&<程序员>主办的2014 Container技术大会将在北京召开,目前议题已经基本确定.为帮助更多同学进一步了解本次大会,主办方总结了技术团队不应错过2014 Container技术大会的九大理由. Container技术已经出现了十几年,但直到2013年Docker项目的出现,才逐渐火热起来,广为人知.如今,Docker拥有超过500个代码贡献者,20个核心Maintainer,超过8000个创建在GitHub上的Docker相关项目,30多个