暂不介绍docker是个什么东西?不知道的本身百度。html
个人docker是装在centos7系统上,windows上个人也用过,可是在windows上动不动就给我死掉。最后换了linux系统。linux
具体在linux上如何安装docker参考下面的连接。nginx
https://www.cnblogs.com/yufeng218/p/8370670.htmldocker
docker pull microsoft/dotnet
而后等待拉去镜像。若是是本身电脑的虚拟机的话,会有点慢。而后百度docker更改镜像库地址。windows
而后拉去完成后 使用这个命令centos
docker images
来查看当前的拉去后镜像。服务器
拉去制定版本的的dotnet镜像或者拉去asp.net core 运行时.,本身去百度(懒得打字)app
当前的dotnet镜像已经拉去好了。咱们来尝试运行一下,输入一下命令asp.net
docker run -it 540aa875e6c2
上面命令的540aa875e6c2是我虚拟机上dotnet镜像的ImageId,请各位输入的本身机器上的。使用dokcer images 会显示镜像id的。工具
而后你会看到进入了一个这么个东西
[root@iz2zefw4l0vyl0r786jwc1z ~]# docker run -it 540aa875e6c2 root@d286c33bedd5:/# ^C root@d286c33bedd5:/#
最经常使用的输入dotent -version看看版本,还有其余命令。
到这里咱们的拉去基础镜像就完成了。
在这里你会问,为何要拉取dotnet镜像?
答:不拉去基础镜像的你的.net core根本用不了啊。不能运行啊。
随便百度一个ftp工具,上传到linux你想要的任何位置。
若是有人问,我想制定一个目录上传怎么办?
答:两个办法,1 你去看看linux建立目录的命令,2;大部分ftp工具都自带建立目录按钮,点一下就好了。
要制做docker镜像,就离不开一个叫Dockerfile东西。这个东西是什么呢?我在这里也不想介绍。仍是本身去百度看看把。
进入到上传.net core程序的目录。
输入命令
vi Dockerfile
没有后缀,大小写一直
输入或者粘贴一下文本
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE 80 ENTRYPOINT ["dotnet", "WebApplication4.dll"]
下面说一下我遇到的坑。
首先copy 后面一个 点,表明当前存放咱们的程序的dll文件的目录。 后面/app是把当前目录重的文件拷贝到docker容器之中的那个目录。这个目录要与上面的WOKDIR 目录一致。
EXPOSE用来指定端口,使容器内的应用能够经过端口和外界交互。
ENTRYPOINT 进入容器执行程序的命令。
输入命令
docker build -t 你给这个镜像取个名字 .
然会就会执行成功。
输入一下命令来启动咱们刚才打包的镜像
docker run --name 容器名称 -p 5000:80 -d 镜像名称或者镜像id
而后使用
docker ps
命令,来查看,咱们的镜像是否启动成功。
若是启动不成功,你须要输入一下命令
docker logs 容器名称
来查看日志。
在说下我遇到的几个重点把。若是你看过doker run 的命令 你会发现 -p 要制定端口, 但是咱们有在Dockerfile中写了程序通讯的端口啊?
答:若是你用我上面的那个run的命令,你Dockerfile中写的EXPOSE 就不会其做用了。会强制使用 -p绑定的端口。
如何在centos 安装nginx 在不说了,百度解决
找到nginx目录。在centos上面nginx安装默认目录都是 /etc/nginx
在nginx目录找到默认的配置文件。根据Nginx版本的不一样,。默认文件的目录也不一样.
本身找找.
找到的话,把里面 servier节点里面的全部内容注释了。
新建一个netcore.conf的配置文件
赋值粘贴一下内容
server { listen 80; location / { proxy_pass http://127.0.0.1:5001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
把里面的 地址改为你本身的端口。 若是访问的话初选502。百度linux关闭selinux。