Docker官方镜像:https://hub.docker.com/

本文将把一个webapi制作成docker镜像

一、Docker命令

打开Docker Quickstart,有以下常用的命令

官方命令行文档:https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file-add-host

http://www.runoob.com/docker/docker-run-command.html

使用镜像

1、docker run [镜像名称]

创建一个容器

--name :给容器一个名称

-d:后台运行

-p 外部:内部:标识容器暴漏给外部访问,

-expose 外部:内部 : 是内部容器互相访问使用

-v  /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine:挂载文件;宿主机器:容器目录

-it 交互模式运行容器;如 docker run -it nginx:latest /bin/bash就是在容器中运行nginx并且运行命令 /bin/bash

类似:docker exec -ti 容器名称 /bin/bash ;进入容器终端

--link redis-1:redis-2 容器之间建立链接,常常和-v挂载文件时候一起使用

2、docker search image_name

检索image ,如:docker search microsoft/dotnet

3、docker pull <镜像名:tag>

下载image ,如:docker pull microsoft/dotnet:latest

4、docker images

列出本地镜像列表; -a, --all=false Show all images; --no-trunc=false Don't truncate output; -q, --quiet=false Only show numeric IDs

docker ps

查看所有运行的镜像,-a参数标识包括已经停止的

5、docker rmi image_name或者ID

删除一个或者多个镜像; -f, --force=false Force; --no-prune=false Do not delete untagged parents

docker rm <容器名orID>如:docker rm $(docker ps -a -q)删除所有镜像

docker stop <容器名orID> 停止容器
docker start <容器名orID>开启容器
docker kill <容器名orID>

6、docker save 镜像名 > path/savename.tar

保存镜像

7、docker load < path/savename.tar

加载路径下已经拷贝到本机的镜像

8、docker build -t <镜像名> <Dockerfile路径>

创建镜像,例如:docker build -t mydocker . 最后的Dockerfile路径可以使用 . 代替,标识当前路径

微软提供的的镜像:https://hub.docker.com/u/microsoft/

二、制作.Net Core Webapi镜像

1、打开VS2015 新建.net core webapi项目

简单修改一下代码,配置下端口

运行api;vs里生成一下,打开项目路径,管理员运行命令行输入

dotnet run

发布api;运行命令后发布路径如绿色字体;

dotnet publish

2、打开Docker终端,创建一个Dockerfile文件

这里在桌面创建一个dockerwebapi文件夹,并创建一个Dockerfile

cd Desktop

mkdir dockerwebapi

cd dockerwebapi

touch Dockerfile  (注意:区分大小写)

打开Dockerfile;如下编辑

# 基于microsoft/dotnet:latest构建Docker Image
FROM microsoft/dotnet:latest # 进入docker中的/usr/local/src目录
RUN cd /usr/local/src # 创建DockerWebAPI目录
RUN mkdir DockerWebAPI # 设置工作路径
WORKDIR /usr/local/src/DockerWebAPI # 将当前文件夹下的所有文件全部复制到工作目录
COPY *.* ./ # 向外界暴露5000端口
EXPOSE # 执行dotnet DockerWebAPI.dll命令
CMD ["dotnet", "DockerWebAPI.dll"]

Dockerfile

3、使用Dockerfile创建镜像

创建镜像有多种方法,适用于不同的情景,这里我们演示用Dockerfile创建一个Webapi的镜像。回到docker终端,输入命令

docker build -t docker-webapi . (注意:最后的空格 .  表示在当前目录创建镜像)

image的名字必须小写,否则报错

基于微软的dotnet镜像,所以会下载,速度感人;

build成功后,使用命令查看一下,docker images查看一下本地已经有我们创建的镜像了。

运行镜像

docker run docker-webapi

三、Push到Docker Hub

首先登录hub:

docker login

然后给自己的镜像打tag:

docker tag dockerwebapi:latest baoyun/dockerwebapi:1.0

push到hub:

docker push baoyun/dockerwebapi:1.0

至此通过上面的实践操作,对docker的image、容器、基础命令、Dockerfile等等有了很直观的印象。

参考文档:

https://docs.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images

http://www.cnblogs.com/Leo_wl/p/5782414.html

https://docs.docker.com/docker-hub/repos/#searching-for-images

Docker:Docker打包Web API成镜像并上传到Docker Hub(2)的更多相关文章

  1. Docker系列06—基于容器制作镜像并上传到Docker Registry

    本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...

  2. 构建自定义docker镜像,上传至docker hub

    docker 优势 (外部参考) Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后 发布到任何流行的Linux机器上,便可以实现虚拟化.Docker改变了虚拟化的方 式,使 ...

  3. 如何将docker镜像文件上传至Docker Hub

    一.Docker Hub中新建存储库 注册,登录Docker Hub之后,点击右上角Create Repository,创建存储库,如下图所示: 取个名字,我这里取名为lihui_demo.并且可以选 ...

  4. ASP.NET 异步Web API + jQuery Ajax 文件上传代码小析

    该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post $.ajax({ type: "POST&q ...

  5. ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

    前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...

  6. .NET和.NET Core Web APi FormData多文件上传对比

    前言 最近因维护.NET和.NET Core项目用到文件上传功能,虽说也做过,但是没做过什么对比,借此将二者利用Ajax通过FormData上传文件做一个总结,通过视图提交表单太简单,这里不做阐述,希 ...

  7. .NET Core Web APi大文件分片上传研究

    前言 前两天发表利用FormData进行文件上传,然后有人问要是大文件几个G上传怎么搞,常见的不就是分片再搞下断点续传,动动手差不多也能搞出来,只不过要深入的话,考虑的东西还是很多.由于断点续传之前写 ...

  8. 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件

    概述 将Springboot的web服务打包成Jar包后,自动化脚本将jar打包成镜像.上传镜像.并生成镜像的压缩文件: Dockerfile FROM 10.254.9.21/library/ora ...

  9. 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)

    写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...

随机推荐

  1. 【iCore4 双核心板_uC/OS-II】例程三:任务的挂起与恢复

    一.实验说明: 当一个任务正在运行的时候,由于某种情况可能需要终止运行一段时间,终止的这段时间就是 所谓的任务的挂起,可以由该任务自身或者其他任务来挂起一个任务.当被挂起的任务需要再次运 行的时候,可 ...

  2. OraclePLSQL编程

    PL/SQL编程 pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展.pl/sql不仅允许嵌入式sql语言,还可以定义变量和常量,允许使用条件语句和 ...

  3. css3图片处理方式 object-fit

    .fill { object-fit: fill; } .contain { object-fit: contain; } .cover { object-fit: cover; } .none { ...

  4. 2.静态AOP实现-装饰器模式

    通过装饰器模式实现在RegUser()方法本身业务前后加上一些自己的功能,如:BeforeProceed和AfterProceed,即不修改UserProcessor类又能增加新功能 定义1个用户接口 ...

  5. 前端Js框架 UI框架汇总 特性 适用范围 选择

    身为一个资深后端工程师,面对层出不穷的前端框架,总让人眼花缭乱,做一个综合解析贴,从全局着眼,让我们明白各种前端框架的应用范围,为如何选择前端框架,从不同的维度提供一些线索,做为一个长期优化贴,欢迎指 ...

  6. 81For全栈技术网

    你想了解前端吗? 你想了解后端吗? 你想了解设计吗? 81For全栈技术这里包含了互联网所有内容,81For.com是全栈技术网,包括:前端.后端.全栈.jquery.vue.react.router ...

  7. 使用Nginx反向代理绕过域名备案详解

    之前笔者在景安云搞过一个Wordpress博客,然后域名备案也是在景安云上面搞的,后来又搞了一个阿里云的服务器,想把博客迁移到阿里云并且使用Ghost博客,然后使用二级域名链接到阿里云,结果出事了.景 ...

  8. pymysql操作mysql

    一.使用PyMySQL操作mysql数据库 适用环境 python版本 >=2.6或3.3 mysql版本>=4.1 安装 可以使用pip安装也可以手动下载安装.使用pip安装,在命令行执 ...

  9. Qt编写自定义控件插件开放动态库dll使用(永久免费)

    这套控件陆陆续续完善了四年多,目前共133个控件,除了十几个控件参考网友开源的代码写的,其余全部原创,在发布之初就有打算将动态库开放出来永久免费使用,在控件比较完善的今天抽了半天时间编译了多个qt版本 ...

  10. vue filters 时间戳转化成时间格式

    vue filters 时间戳转化成时间格式 filters: { formatDate: function (time) { var re = /-?\d+/ var m = re.exec(tim ...