大家好大家好,首先先谢谢各位花费宝贵的时候翻阅我的文章,我也会尽力写的详细点,不浪费大家休息时间。
1.什么是Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2.为什么使用Docker
使用Docker容器技术可以再全平台发布应用和服务。总所周知,.Net平台一直因为不开源以及不能跨平台诟病。小编又是一名忠实的微软粉,可是不能使用Linux作为实体服务器的.Net平台在现在分布式系统遍地,微服务纵横的天下,真的是举步维艰。还好有个Docker容器技术,解决这个问题,所以小编靠闲暇时间填了不少坑,也是部署出来了,这里跟大家分享一下。
PS:为什么不使用其他的方式(依赖框架等)来在linux上发布.NetCore应用。一次配置全平台都可以用呀!这还用说啊,帅啊!!!!
3.安装Docker
安装Docker有很多方式,小编也试了好几种,但是因为国内网速的限制有些方式会很慢,甚至因为太慢暂停下载。而有些方式安装完却有很多很多的问题,这里小编也把自己遇到的坑分享给大家。
这里给大家分享两种安装方式,实测有效。Docker分两个版本,Docker-ce和Docker-ee,后者是收费的,小编这里装ce版本。
(1)使用yum安装
安装一些必要的系统工具:PS:sudo表示以管理员权限执行,如是root用户(最高权限)可不输入
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
$ sudo yum makecache fast
安装 Docker-ce:
$ sudo yum -y install docker-ce
启动 Docker 后台服务
$ sudo systemctl start docker
测试运行 hello-world
$ docker run hello-world
(2)使用脚本安装 Docker 吃网速,网速快可选择
确保 yum 包更新到最新。
$ sudo yum update
执行 Docker 安装脚本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
启动 Docker 进程。
$ sudo systemctl start docker
验证 docker 是否安装成功并在容器中执行一个测试的镜像
$ sudo docker run hello-world
(3)Docker常用命令
$ docker pull 镜像名 //拉取镜像,我要部署的应用可能会需要依赖一些基础镜像
$ docker build 自定义镜像名 . //把自己的项目编译成镜像,部署到Docker容器中,别忘了这个‘.’!!!
$ docker images //查看所有镜像
$ docker run --name=容器名-p 主机环境端口:Docker容器映射端口 -d 镜像名 //运行镜像
$ docker ps -a // 查看容器运行状态,up运行成功
$ docker logs -t -f 容器名 //查看运行日志,可以从中看到出现的问题
4.部署.NetCore应用到Docker
(1)新建一个 ASP.NET Core 2.0 项目
然后运行一下项目,确保我们刚刚建立的项目可以正常运行
(2)编写DockerFile,并设置属性复制到生成文件
FROM microsoft/dotnet:2.1-aspnetcore-runtime
RUN cd /usr/local/src
RUN mkdir MyTestApi
WORKDIR /usr/local/src/MyTestApi
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "MyTestApi.dll"]
(3)发布项目
(4)将Dockerfile文件复制到发布成功的目录,并全部上传到服务器
(5)构建Docker镜像
进入到发布文件目录(Dockerfile文件所在目录),执行命令便可打包镜像
$ docker pull microsoft/dotnet:2.1-aspnetcore-runtime //拉取基础镜像
$ docker build -t mytestapi . //构建镜像 别忘了这个'.'!!!!
$ docker run --name=mytestapi-p 80:80 -d mytestapi //运行镜像
出现一长串字符串,便是表示运行成功
5.部署.NetCore到Docker遇到的问题
6.总结
到这里呐今天的内容就到此结束了,感觉大家翻阅。
小编马上也要开学了,要办免听,学校还要求考什么技能证书才能毕业(难受),自己又在发现还没考软件设计师emmm,看了题目就很烦,给你们看一下。
小编以为会只考考软件设计,数据库设计,没想到这么多理论😭😭😭😭😭
公司里项目也一直在忙上线,真的苦了我了
说这么多其实就是想表达,小编只能保证周末更新😭😭😭😭😭平时真的没时间了,谢大佬们体谅。想抽我话就私信我吧,任打任罚。下期带来Rabbitmq的安装和实例。
程序猿真是苦命,还好我年轻,正在通往牛逼的道路上狂奔。
参考链接:
http://www.runoob.com/docker/centos-docker-install.html
https://www.studenty.cn/?p=1135
https://www.studenty.cn/?p=1113
https://blog.csdn.net/yjk13703623757/article/details/68939183
网友评论