zoukankan      html  css  js  c++  java
  • docker 部署go .netcore 基于ubuntu16.10

    由于docker分为ce和se,最新的安装方式在这里   时间2017.09.27

    -----------------------------------------------------------------------分割线-----------------------------------------------------

    新项目完工,闲来无事玩docker,记录下碰到的问题,事无巨细

    ubuntu官网下载最新版的系统,传送门

    在使用vmware的时候碰到的问题,不能传输文件,需要安装vmware tool

    linux用到的命令

    mkdir 创建文件夹

    clear 清屏命令

    netstat -ano|grep 80 查看端口状态

    使用vim碰到的问题

    创建文件:vim.tiny Dockerfile

    保存退出::wq(需要先按esc键再按这个命令)

    因为vim用的不熟,所以用vim创建完成后,拿gedit编辑,命令:sudo gedit /etc/apt/sources.list

    docker可以按照docker中文网下载安装

    一般下载好的ubuntu可以用下面命令直接安装(感觉好easy)

    $curl -sSl https://get.docker.com/ | sh

    确认docker安装成功

    $sudo docker run hello-world

    这个命令会下载一个官方提供的示例镜像并运行

    docker常用到的命令:

    docker build 生成一个镜像image(我在用Dockerfile生成时用到) likes:docker build -t coreapp . (后面的.一定要加)

    docker run 使用镜像运行一个container(实例)   likes:docker run -p 8080:8080 --name="coreapp1" -d coreapp

    docker start 启动一个container likes:docker start coreapp1

    docker stop 停止一个container likes:docker stop coreapp1

    docker rm 删除一个container likes:docker rm coreapp1

    docker ps 列出正在运行的container,docker ps -a 列出所有container

    可以组合使用的命令:docker rm $(docker ps -a)删除所有实例 ,用到这个命令是因为发现没有在运行的实例但是想要删除一个镜像时由于关联不能删除

    docker images 查看所有的镜像image

    docker rmi 删除一个镜像 likes:docker rmi coreapp

    这些都是最基本的命令。因为就是最基本的跑马篇。

    在ubuntu安装go 参考官方文档 和 民间文档

    下载最新版本的go包(tar.gz结尾)

    解压到usr/local:sudo tar -xzf go***.tar.gz -C /usr/local

    配置环境变量,还是vim不熟,拿gedit编辑

    sudo gedit /etc/profile

    在文件末尾添加

    GOPATH="/YOUR/USER/HOME/go"

    GOROOT="/usr/local/go"

    PATH=$GOROOT/bin:$PATH

    测试go安装是否成功(直接输入go看是否有反应)

    编写最简单的go代码查看是否能build成功(第一次下载的不完整,导致很多基本包如fmt没有)

    创建一个文件夹,创建一个main.go文件输入下面代码

    package main
    
    import(
        "fmt"
    )
    func main()  {
        fmt.Println("Hello go")
    }

    使用go run main.go,看其能否输出

    最近在学习go开发后台,下个文章再写go API和go连接mysql

    ubuntu安装.netcore 这个必须官网 为啥这么简单

    $sudo apt-get install dotnet-dev-1.0.1

    $dotnet new console -o helloworld

    $cd helloworld

    $dotnet restore

    $dotnet run

    我在本机拿vs2015创建了基本的web项目放到上面测试

    dotnet webapplication1.dll直接启动测试

    懂得很少,发现需要配置nginx(Engine X),继续配置(其实这些都可以用docker配置,暂时不明白怎么搞)

    根据官网安装发现不行,只好一个一个下包,解压安装,当时参考的博客,貌似不好用

    最后的结果是安装这几个文件

    第一次下载的pcre2文件,发现不行,重新下载pcre文件

    解压文件,进入各自的文件夹根据每个的config和configure分别安装,最后安装nginx

    ./config

    make

    make install

    先查看80端口状态 netstat -ano|grep 80

    启动nginx ,命令: sudo /usr/local/nginx/sbin/nginx

    打开localhost,可以看到显示访问nginx

    配置好nginx就可以访问刚才创建的netcore 测试程序了

    docker 部署go程序,测试使用,完全参照:前人栽树

    创建Dockerfile

    # 得到最新的 golang docker 镜像
    FROM golang:latest
    # 在容器内部创建一个目录来存储我们的 web 应用,接着使它成为工作目录。
    RUN mkdir -p /go/src/web-app
    WORKDIR /go/src/web-app
    # 复制 web-app 目录到容器中
    COPY . /go/src/web-app
    # 下载并安装第三方依赖到容器中
    RUN go-wrapper download
    RUN go-wrapper install

    ENV PORT 9001
    # 给主机暴露 8080 端口,这样外部网络可以访问你的应用
    EXPOSE 9001
    # 告诉 Docker 启动容器运行的命令
    CMD ["go-wrapper", "run"]

    build生成镜像:docker build --rm -t go-app .

    运行测试实例:docker run -p 8080:8080 --name="test" -d go-app

    查看localhost:8080 测试是否成功

    docker部署.netcore程序,前人栽树(有的时候不好用)

    创建Dockerfile文件

    FROM microsoft/dotnet:latest
    COPY . /app
    WORKDIR /app
    EXPOSE 5000/tcp
    CMD ["dotnet","WebApplication1.dll"]

    生成镜像和运行实例和前面一样~发布好测试

    docker的好处是一次发布到处部署,集装箱的解释很好,准备研究kubenetes,对docker统一管理。

  • 相关阅读:
    一次安装。net core的经历
    c# task 等待所有子线程执行完的写法
    .net 中的async,await理解
    dbeaver pgsql连接工具
    oracle 导出表结构和备注
    abp
    发布站点
    excel 拆分多个excel并保持
    重定向和反向代理的区别
    es6中的解构赋值
  • 原文地址:https://www.cnblogs.com/AceZhai/p/6557976.html
Copyright © 2011-2022 走看看