zoukankan      html  css  js  c++  java
  • ubuntu安装docker,docker部署dotnetcore2.0 web应用(三)

    我是在本地安装的虚拟机

    1.下载ubuntu18.0.4 iso镜像包

    2.打开win10自带的Hyper-V管理器

    3.创建新的虚拟机,引用ubuntu18.0.4 iso镜像包,一步步安装成功。

    开始安装doker

    • 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
      sudo apt-get remove docker docker-engine docker-ce docker.io
    • 更新apt包索引:
      sudo apt-get update
    • 安装以下包以使apt可以通过HTTPS使用存储库(repository):
      sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    • 添加Docker官方的GPG密钥:
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    • 这个时间点(2018.06.09),Ubuntu 18.04 LTS (Bionic Beaver) 对应的docker package is not available,所以只能通过下面的语句安装stable存储库
      add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable" 

      不能使用下面的语句,我就踩了很多坑,很多博客都推荐下面的语句,这样就会导出docker-ce安装不上

      sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    • 再更新一下apt包索引:
      sudo apt-get update
    • 安装最新版本的Docker CE:
      sudo apt-get install -y docker-ce
    • 这里安装的最新版,其实是安装你电脑上可用的最新版,查看系统可用的版本:
      apt-cache madison docker-ce

    • 选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:
      sudo apt-get install docker-ce=<VERSION>

      验证docker

    • 查看docker服务是否启动:
      systemctl status docker
    • 若未启动,则启动docker服务:
      sudo systemctl start docker
    • 测试经典的hello world:
      sudo docker run hello-world

     dotnetcore项目部署docker

       

    准备工作:首先记录接下来可能会用到的几个常用命令

    复制代码
    sudo docker pull microsoft/dotnet    //从docker仓库拉取一个名称为“microsoft/dotnet”的镜像
    
    sudo docker build light    //构建一个名称为light的容器
    
    sudo docker run hello-world    //运行hello-world容器
    
    sudo docker images    //查看所有镜像
    
    sudo docker rmi 63sf86332e    //删除一个imageid的镜像
    
    sudo docker rmi $(docker images -q)    //删除所有镜像
    
    sudo docker ps -a    //查看所有容器
    
    sudo docker rm 6f0c67de4b72    //删除一个containerid的容器
    
    sudo docker rm $(sudo docker ps -a -q)   //删除所有容器
    复制代码

    1、拉取dotnet-sdk的最新镜像,速度慢的话请自行搜索daocloud docker hub加速。

    sudo docker pull microsoft/dotnet:latest

    完成之后查看一下镜像

    sudo docker images

    2、进入到这个镜像,查看版本没问题后创建一个控制台程序,然后运行并查看结果

    复制代码
    sudo docker run -it  microsoft/dotnet  //每次run,都会重新构造出新的互不影响的容器,请自行查看
    
    dotnet --version
    
    mkdir test
    
    cd test
    
    dotnet new
    复制代码

     

    3、获取dotnetcore项目发布文件,默认生成publish文件夹,文件夹可以自行修改, 创建Dockerfile文件,并将其配置成以下内容,最后把Dockerfile文件放到pubkish文件夹里面

    FROM microsoft/dotnet
    WORKDIR /app
    COPY ./publish .
    ENTRYPOINT ["dotnet", "Edensoft.ComputerStorage.Web.dll"]

    4、切换到Dockerfile所在的目录下,并执行构建命令,成功之后会有下图的提示

    sudo docker build -t storageweb:1.0 .  //注意后边还有一个点呢

    5、运行刚才构建成功,名字为storageweb的容器,直接绑定服务器的9025端口

    sudo docker run --name storageweb  -p 9025:9025 -e "ASPNETCORE_URLS=http://+:9025" -d storageweb:1.0

     

  • 相关阅读:
    基于Canvas的时钟
    注意A链接的默认行为
    基于Aptana3+Django开发blog的示例
    使用vbscript替换excel文件的内容
    使用Ajax建立的Server Push和Iframe建立的Comet
    ajax和它的超时
    通用SQL分页程序
    简简单单学习ASP.NET之三
    功能很强大的UI封装类
    封装的一些实现图片水印与图片自动结合缩放的类
  • 原文地址:https://www.cnblogs.com/hank-hu/p/9935117.html
Copyright © 2011-2022 走看看