.Net Core(完) 创建Docker镜像
使用Docker可以在操作系统上分出多个独立的区域(容器/Container),各个容器之间基本隔离,且可以有自己单独的系统配置、软件等,各个容器之间的软件基本不会互相干扰。Docker上配置好的容器可以随意移动到其它计算机中运行。
Docker可以很好得保证应用之间的互相隔离,同时Docker的进程跑在原生操作系统上,不会像虚拟机哪样性能差。
Docker还能更好地满足网站对于可伸缩性的要求,可以按需自动扩容,同时docker还具有“即抛”的特性,访问高峰过去后也可以减少容器的数量。
一、安装Docker
a)先了解一些基本概念:
镜像(Image):类似于软件安装包;
容器(Container):镜像安装后运行的实例,同一个镜像可以用于在一台服务器上创建多个容器;
镜像Layer:因为镜像可以被pull,修改后push,所以对于一个镜像的多次修改就会产生多个layer。
b)Docker的安装包为docker.io,安装完成后使用sudo docker version/info查看相关信息。
c)用Docker来类比VirtualBox等虚拟机,那么镜像就相当于安装盘,“虚拟机”安装好了,下面加载安装盘。docker的官网上有多种镜像,busybox这个镜像只有1m左右。执行sudo
docker pull busybox可以获取镜像,sudo docker run -it
busybox运行,也可以直接运行,docker会自动先获取。使用linux的whoami和uname-a指令可以验证docker是独立的环境。busybox的详细版本为Linux
f3486b919f40 4.10.0-33-generic,也许跟Linus当年写的第一个版本差不多吧。
c)将当前用户加入docker的用户组,可以免去在每个docker指令前加sudo的麻烦。
sudo groupadd docker #确认存在docker用户组
sudo gpasswd -a zhixin docker #将当前用户加入docker组
sudo service docker restart #重启docker服务
最后注销、重新登录系统。
二、Docker常用命令
docker --help
docker run --help 使用类似的写法查看子命令的帮助
exit 退出容器
docker run -it busybox 启动busybox镜像的新容器实例
docker run -it --name <name> busybox --name为容器指定名称
docker ps 查看正在运行的容器,加-a显示全部,-q只显示容器ID,-f筛选,docker ps -a -f=ancestor=busybox 按照名称筛选
docker rm <容器ID> 删除容器,使用docker rm $(docker ps -q -a) 这样的写法可以删除全部
docker start <容器ID> 启动一个容器实例,后台运行
docker stop <容器ID> 停止
docker run -d busybox 创建实例并后台运行,但如果容器没什么操作,会自动停止,start不会停止
docker attach <容器ID> start容器后默认后台运行,attach可以进入容器
docker images 列出所有镜像
sudo docker rmi <镜像ID> 删除镜像,删除前需要先删除该镜像的容器
三、制作.Net Core镜像
a)首先获取microsoft/dotnet:runtime镜像,这个镜像只带有core的运行时,比microsoft/dotnet小了一半。
b)创建并发布一个asp.net core项目,program.cs中添加.UseUrls("http://*:5000"),要在.Build()方法之前。
c)在发布目录下创建Dockerfile,内容为:
FROM microsoft/dotnet:runtime
COPY . /publish #注意.和/之间有空格,表示把主机当前目录内容拷贝到镜像的/publish目录
WORKDIR /publish #设定工作目录
EXPOSE 5000/tcp #暴露 5000 端口
CMD ["dotnet","ForNginx.dll"]
d) 执行docker build -t zhixin/web1 . 来构建新的镜像
e) 执行docker run -d -p:81:5000 zhixin/web1来启动镜像,并映射docker的5000端口到主机的81端口
学习资料:如鹏网.net提高班http://www.rupeng.com/News/10/4603.shtml
.Net Core(完) 创建Docker镜像的更多相关文章
- Spring Boot 创建 Docker 镜像
随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...
- Docker笔记--镜像&基于GO项目创建Docker镜像
Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...
- 基于Dockerfile创建docker镜像
0.先创建一个文件夹img mkdir img 1.Linux上新建3个文件 2.文件内容分别写入 (1)Dockerfile中 # 基于的基础镜像centos FROM centos # 维护该镜像 ...
- Mycat 镜像-创建 Docker 镜像
将 Mycat-server 创建到镜像,使其能够进行容器化部署,我们需要创建 Dockerfile 并在文件中安装其依赖项,使用 centos 做为 base 镜像,并安装 jdk 依赖即可,因此创 ...
- 03-docker入门-创建 docker 镜像
方法1:从运行的容器创建方法2:编写 DockFile 文件创建 方法1: 打包镜像 docker commit -m "Test a change" 610 ubuntu:tes ...
- Golang Web应用 创建docker镜像笔记(win 平台)
记录的是 本地编译好了再创建容器镜像的方法 ,这样子生成的镜像文件比较小,方便分发部署 win 平台需要设置golang交叉编译 生成linux可执行文件 CMD下: Set GOOS="l ...
- Docker+.Net Core 的那些事儿-2.创建Docker镜像
1.从store.docker.com获取.net core镜像 docker pull microsoft/dotnet 2.创建一个.net core项目,并发布 在上篇文章结尾建立的工作目录下, ...
- .Net Core创建Docker镜像
1..Net Core项目[Lails.Server.Demo]发布到目录下Lails.Server.Demo\bin\Release\netcoreapp2.1\publish 2.上面目录下新建文 ...
- 创建docker镜像,初始化jdk8与tomcat环境
一.创建Dockerfile文件: 创建Dockerfile文件,下载jdk与tomcat放在Dockerfile同目录下. Dockerfile文件内容: FROM Ubuntu:14.10 MAI ...
随机推荐
- org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException
相信很多的朋友在开发过程中都或多或少的遇见一些异常,下面我给大家说一说NoSuchRequestHandlingMethodException 这个异常说的是找不到处理这样的请求方法,那是什么原因导致 ...
- 构建NTP时间服务器
NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时间. 互联网的时间服务器也有很多,例如ntpdate ntp. ...
- java main()线程是不是最后一个退出的(相比较main中创建的其他多个线程)
JVM会在所有的非守护线程(用户线程)执行完毕后退出: main线程是用户线程: 仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程. pu ...
- UFLDL 教程学习笔记(三)自编码与稀疏性
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- Windows下memcache的配置和使用(python)
1.memcache的安装和配置: 下载memcache for windows: http://up.2cto.com/2012/0522/20120522094758371.rar 解压到指定目 ...
- 在Windows环境中安装Neo4j
图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边( ...
- 关于requests的session方法保持cookie的问题。
最近在做爬虫的时候遇到了一个问题,在用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie.起初以为requests只能自动保持由服务器返回的s ...
- PHP之高性能I/O框架:Libevent(三)
Swoole Swoole里也提供了一些直接操作底层epoll/kqueue事件循环的接口,可将其他扩展创建的socket.PHP代码中stream/socket扩展创建的socket等加入到Swoo ...
- SQL 必知必会·笔记<11>创建高级联结
1. 使用表别名 SQL 除了可以对列名和计算字段使用别名,还允许给表名起别名.这样 做有两个主要理由: 缩短SQL 语句: 允许在一条SELECT 语句中多次使用相同的表. 使用表别名示例: SEL ...
- 进程间通信IPC-命名管道FIFO
FIFO又被称为命名管道,未命名的管道只能在两个相关的进程之间使用,而这两个相关的进程还要有一个共同创建了它们的祖先进程,但是FIFO,不相关的进程之间也能交换数据. FIFO是一种文件类型.通过st ...