1.根据镜像运行容器 上篇文章建立了一个镜像: 我们以此开始,执行以下命令: docker run -d -p 5000:5000 hwapp:latest 如果返回以上结果表示建立成功. 此时如果你安装的是桌面版的centos,可以在centos中打开浏览器访问http://localhost:5000,看是否可以正常访问. 如果你是min版,可以执行以下命令: curl http://localhost:5000 如果返回.net core html内容,表示成功建立. 至此,整个docke…
1.从store.docker.com获取.net core镜像 docker pull microsoft/dotnet 2.创建一个.net core项目,并发布 在上篇文章结尾建立的工作目录下,执行 [root@localhost docker_demo]# dotnet new mvc -o hwapp //创建一个asp.net core mvc程序 [root@localhost docker_demo]# cd hwapp[root@localhost hwapp]# dotnet…
1.下载centos 地址:https://www.centos.org/download/ 我使用的是DVD ISO,这么做的目的是为了在之后的docker填坑的路上,方便使用centos中Firefox来确定docker中的app能否正常访问. 当然,如果使用curl命令也是可以测试的,这就看各位的喜好了.我安装的centos版本为7,不同版本可能稍有不同,我会尽量在过程中注明. 下载完毕后,需要对系统进行一些配置: 1)关闭selinux selinux是一个非常坑的东西,它会使很多跟网络…
1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生成项目,将项目拷贝到 E:\web\aspnetcore.webapi 目录下面,打开docker进入到 E:\web\aspnetcore.webapi 目录,生成ASP.NET Core WebApi 应用程序生成 Docker 映像 docker-compose up up 自动完成包括构架镜…
1.通过docker run -v命令映射工作目录 通过一系列上述操作,我们可以发现我们的发布是基于镜像的,也就是说,在后期的迭代过程中,如果有些代码修改,我们就不得不删除旧的容器和镜像,dotnet重新发布,再按照Dockerfile重新建立镜像和容器并运行,这种操作很蛋疼的,那有什么办法可以解决这个问题呢,这就是本篇文章要讲的内容. 在准备工作之后,执行以下操作: [root@localhost publish]# vim Dockerfile 删除COPY . /publish这句,之后执…
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了.那么我就来翻译一下这篇文章,让更多的中文读者看到.当然Scott遇到的坑我也遇到了. 不过首先,对于不熟悉的朋友我还是来解释一下Linux容器和Windows容器的概念. 由于容器成为虚拟化和应用托管的一种不可避免的选项,Windows也开始为公众提供容器功能(其实微软具备和使用…
在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了.那么我就来翻译一下这篇文章,让更多的中文读者看到.当然Scott遇到的坑我也遇到了. 不过首先,对于不熟悉的朋友我还是来解释一下Linux容器和Windows容器的概念. 由于容器成为虚拟化和应用托管的一种不可避免的选项,Windows也开始为公众提供容器功能(其实微软具备和使用容器技术很久了).这…
安装Docker环境 参考本人这篇<CentOS 7 下Docker的安装>文章进行安装以及环境配置,这里不做赘述. 通过.NetCore开发WebApi项目 1. 创建.Net Core Web项目,如下图所示: 这里我们选择Web API模板进行项目创建,为了简单起见,我们不做身份验证,也不选择 Host in cloud,点击ok项目及创建好 默认的项目文件结构如图所示: 在cmd 执行dotnet restore 恢复依赖包 运行项目,在浏览器就可以查看到结果 至此,一个简单的.Net…
原文:Docker + .NET Core(二) 前言: 环境:centos7.5 64 位 正文: 首先我们在宿主机上安装 .NET Core SDK sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://p…
原文:Docker + .NET Core(一) 前言: 环境:centos7.5 64 位 正文: 拉取 microsoft/dotnet, 安装完毕后执行 docker images 可以看到本地已经包含 microsoft/dotnet #包含了.NET Core项目所需的一切依赖和运行时环境. docker pull microsoft/dotnet 使用 docker run 镜像名 可以启动镜像,通过指定参数-it 以交互模式(进入容器内部)启动.依次执行以下命令: //启动一个do…
前面已经介绍过了 .Net Core 程序发布到 Docker 容器的内容.但是每次通过 SSH 链接到服务器敲命令,运行脚本也是挺麻烦的一件事.程序员是最懒的,能让电脑解决的问题绝不手动解决,如果当我们push一次代码后自动build代码,自动跑单元测试,如果测试通过,自动发布程序,如果失败就发邮件通知管理员,这样的话该多美好.为了达成这个目标于是持续集成(CI)持续交付/部署(CD)就被发明出来了.CICD领域有个大名鼎鼎的工具:Jenkins,但是这次不使用它.如果你使用阿里云的话,阿里云…
本文翻译自Hans Kilian的文章 Creating a containerized .NET core application in less than 10 lines of code https://medium.com/@hkkilian/creating-a-containerized-net-core-application-in-less-than-10-lines-of-code-567f4572ef01 Docker的一个优势是你可以在别人的容器之上创建你自己的容器.在这片…
1.在项目里创建Dockerfile(注意大小写)文件,执行构建命令:docker build -t tiny-node-1 /root/tiny-node-docker    其中tiny-node-1是镜像的标签名称,/root/tiny-node-docker是项目的路径 1.1 Dockerfile的详解以后再说... 2.创建容器镜像docker run --rm -it -p 8080:8080 tiny-node-1(软件名称)…
本文介绍如何利用dockerfile来创建镜像.下面介绍具体的操作过程: 一.创建构建环境 操作示例如下: xxx@ubuntu:~$ pwd /home/xxx xxx@ubuntu:~$ mkdir myweb xxx@ubuntu:~$ cd myweb xxx@ubuntu:~/myweb$ touch Dockerfile 上面命令在当前用户(xxx)的主目录下创建了一个myweb目录,并在该目录下建立了一个空的文件名为Dockerfile文件.这个目录就是我们的构建环境(或上下文).…
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 本教程主要分以下几点内容: 一. 使用docker toolbox安装docker 二. 使用docker引擎在容器中运行镜像 三. 创建自己的docker镜像并且在容器中运行它 --------------------------------------------------------…
Docker 创建容器 1.拉取镜像 默认是 docker.io 仓最新镜像 docker pull tomcat 2.运行一个服务容器 docker run -d -p 0.0.0.0:18080:8080 --name tomcat-web1 tomcat -d:让容器在后台运行. -P:将容器内部使用的网络端口映射到我们使用的主机上 -p:指定端口 --name: 给容器命名 tomcat-web1最后一个 tomcat 是使用的镜像 3.创建启动 一个 centos 系统容器: dock…
1. 创建 Apache 容器 [root@centos7 ~]# docker run -d -p : httpd // -d: 放入后台运行 // -p: 指定端口映射关系(第一个为本地端口.第二个为容器端口) 2. 创建 Nginx 容器 [root@centos7 ~]# docker run -d -p : nginx // 将本地的 8080 端口映射到容器的 80 端口: 3. 查看容器 [root@centos7 ~]# docker ps -a // docker ps 命令时…
容器是镜像的一个运行实例,是基于镜像运行的轻量级环境,是一个或者一组应用. 怎样创建容器?将容器所基于的镜像名称传入即可,Docker会从本地仓库中寻找该镜像,如果本地仓库没有,则会自动从远程仓库中拉取. docker pull nginx拉取nginx最新版本的镜像 docker images查看镜像 docker create nginx创建nginx容器 docker run nginx启动nginx容器 此时Xshell处于前台交互模式,按Ctrl+C退出,则容器也随之停止运行 dock…
其实这个题目的话,对于我后面陈述的问题发生的本身并没有太多的联系,但是因为是在docker创建容器的操作之内发生的,所以记录以下 因为网上有些文章有些作者喜欢使用git的命令窗体,说实在的,公司里面用过linux,mac,以至于也习惯了它们的一些操作命令,但是windows的话还是稍微有那么一丢丢的不同的,所以为了适应,我也在我的电脑上选择了使用git的命令窗体来做操作,刚开始的时候任何命令都没有任何问题 但是就在我使用命令创建容器的时候,问题出现了,这里我使用两个例子,一个是postgres,…
开发环境:Windows 10,部署环境:阿里云 CentOS 7.3 1. 创建应用 1) 创建项目, 配置应用生成部署包 2) 配置项目 编辑project.json, 追加环境项, 选项可参考这: https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog#using-rids 还有这个,监听端口也要确认下 3) 生成部署文件 点击发布 这里一定要选中对应的发布环境,要不部署后会直接抛500 (在上一步追加了runti…
继上一篇, 我们确定在内网可以通过 "http://localhost:5000",可以访问到站点后,接下来我们要配置"守护进程","Nginx公网80端口访问" 1. 守护进程配置 a) 创建kestrel-hellomvc.service 文件 sudo vim /etc/systemd/system/kestrel-hellomvc.service b) 粘贴以下内容 [Unit]Description=Example .NET Web A…
libcontainer的工作流程 execdriver的run方法通过docker daemon提交一份command信息创建了一份可供libcontainer解读的容器配置container,继而创建真正的docker容器.OCI组织成立后,libcontainer进化为runC ,因此从技术上说,未来libcontainer/runC创建的将是符合Open Container Format (OCF)标准容器 这个阶段,execdriver需要借助libcontainer处理一些事情, 创…
创建容器的选项 [root@mast ~]# docker container run --help Usage: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container Options: --add-host list Add a custom host-to-IP mapping (host:ip) -a, --attach list Attach to STDIN, S…
原文:Docker + .NET Core(三)-两种发布方式 第一种,自己手写dockerfile发布,上传至hubDocker 正常发布到文件夹中,发布文件上传至linux机器上.如 /www/app 将Dockerfile文件也复制到同目录 ./www/app 输入 docker image build -t demo .,构建一个demo名字的镜像.这个时候就会构建镜像,输入docker images可以查看当刚刚生成的镜像.也可以看到下面会用到的IMAGEID 输入docker run…
修改已创建容器端口映射. 通过编辑 hostconfig.json 文件来修改 Docker 容器的端口映射 该文件地址:/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 其中 hash_of_the_container 是你对应容器的 hash 值,需要完整的 hash 值 查看完整的 hash 值:docker inspect -f {{.ID}} containers_name 接着找到如下节点进行修改:…
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定. 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的. 我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可. 查看网络模式 docker network ls 创建一个新的bridge网络 docker network create --driver bridge --subnet=172.18.12.0/16 --gatewa…
运行环境: CentOS 7.0 容器:Docker 1.13.1 .Net Core版本: .NET Core 2.1,安装详见 CentOS 7 下安装.NET Core SDK 2.1 1.安装docker  (1)安装docker sudo yum install docker (2)启动docker systemctl start docker.service (3)配置开机启动 systemctl enable docker.service (4)查看docker版本信息 docke…
在linux系统中安装完成docker后,我们开始进行docker的镜像.容器的使用. 在使用docker时,首先要明确的两个概念:image(镜像) 与  container (容器) image:根据官网的解释,镜像是一个为容器提供服务的独立的文件系统,它包含独立运行所需要的文件与代码. 简单地说:镜像就是一个不包含linux内核而又精简的linux系统 docker 镜像默认存储在/var/lib/docker/<storage-driver>中,现在最新版本的linux系统的存储驱动一…
.Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库  , 一直报下面的错误 ORA-00604: error occurred at recursive SQL level 1 ORA-01882: timezone region not found 解决方法是 : docker-compose 的时候设置环境变量TZ 即可 environment: TZ: "Asia/Shanghai" 另外, 防火墙关闭后, 必须重启docker服务, 容器…
前言 容器是Docker的三大核心概念之一.简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用.通过这篇文章,我们来讲讲Docker容器的一些常用命令,如创建,停止,重启,暂停等等. 原创声明 本文发布于掘金号[Happyjava].Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://…