Docker:Docker打包Web API成镜像并上传到Docker Hub(2)
Docker官方镜像:https://hub.docker.com/;
本文将把一个webapi制作成docker镜像
一、Docker命令
打开Docker Quickstart,有以下常用的命令
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)的更多相关文章
- Docker系列06—基于容器制作镜像并上传到Docker Registry
本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...
- 构建自定义docker镜像,上传至docker hub
docker 优势 (外部参考) Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后 发布到任何流行的Linux机器上,便可以实现虚拟化.Docker改变了虚拟化的方 式,使 ...
- 如何将docker镜像文件上传至Docker Hub
一.Docker Hub中新建存储库 注册,登录Docker Hub之后,点击右上角Create Repository,创建存储库,如下图所示: 取个名字,我这里取名为lihui_demo.并且可以选 ...
- ASP.NET 异步Web API + jQuery Ajax 文件上传代码小析
该示例中实际上应用了 jquery ajax(web client) + async web api 双异步. jquery ajax post $.ajax({ type: "POST&q ...
- ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件
前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...
- .NET和.NET Core Web APi FormData多文件上传对比
前言 最近因维护.NET和.NET Core项目用到文件上传功能,虽说也做过,但是没做过什么对比,借此将二者利用Ajax通过FormData上传文件做一个总结,通过视图提交表单太简单,这里不做阐述,希 ...
- .NET Core Web APi大文件分片上传研究
前言 前两天发表利用FormData进行文件上传,然后有人问要是大文件几个G上传怎么搞,常见的不就是分片再搞下断点续传,动动手差不多也能搞出来,只不过要深入的话,考虑的东西还是很多.由于断点续传之前写 ...
- 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件
概述 将Springboot的web服务打包成Jar包后,自动化脚本将jar打包成镜像.上传镜像.并生成镜像的压缩文件: Dockerfile FROM 10.254.9.21/library/ora ...
- 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)
写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...
随机推荐
- 干货 | Ansible 上手指南
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/O4dC8OjO7ZL6/article/details/79765539 点击上方"中兴开 ...
- fiddler使用指南
fiddler使用指南 fiddler 设置 如果要手机抓包的话,需要设置fiddler, 允许远程设备连接 tools/fiddler options/connection/allow remote ...
- java中获取两个时间中的每一天
引入下面方法即可: /** * 获取两个时间中的每一天 * @param bigtimeStr 开始时间 yyyy-MM-dd * @param endTimeStr 结束时间 yyyy-MM-dd ...
- 将RAC软件转换为单实例软件
将RAC软件转换为单实例软件 http://blog.itpub.net/26736162/viewspace-2155632/ 1. Stop database and CRS on both no ...
- js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
现在有一批手机,其中颜色有['白色','黑色','金色','粉红色']:内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[[ ...
- pom.xml文件最详细的讲解
1 引入额外的jar包 <dependency> <groupId>bitwalker</groupId> <artifactId>UserAgentU ...
- docker 应用-1(安装以及基础命令)
Docker 安装 还是看官方文档吧TAT https://docs.docker.com/engine/getstarted/step_one/ 理解docker镜像和容器 镜像就是docker容器 ...
- 漏洞预警:Linux内核9年高龄的“脏牛”0day漏洞
这个名叫Dirty COW,也就是脏牛的漏洞,存在Linux内核中已经有长达9年的时间,也就说2007年发布的Linux内核版本中就已经存在此漏洞.Linux kernel团队已经对此进行了修复. 漏 ...
- 更改ORACLE归档路径及归档模式
更改ORACLE归档路径及归档模式 在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/flash_recovery_area).对于这个路径, ...
- super方法 调用父类的方法
描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复 ...