一、windows 创建镜像push到远程仓库
1、首先创建netcore项目
2、修改属性dockerfile:始终复制
3、配置dockerfile
# FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base 微软已经在dockerhub中移除此镜像,使用如下镜像
FROM mcr.microsoft.com/dotnet/aspnet:2.1 AS base
WORKDIR /app
COPY ./bin/Release/netcoreapp2.1/publish /app #COPY 当前目录 容器的目录
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
4、发布项目(记得发布项目的地址)
5、创建镜像
docker build -t aspnetcoredockerdemo .
aspnetCoreDocker 名称随意,最后的点不能丢
6、创建容器
docker run -d -p 7777:80 --name=aspnetCoreDockerdemo --restart=always -v /app/wwwroot/UploadFiles/:/app/wwwroot/UploadFiles/ aspnetcoredockerdemo
--name=容器名称
--restart=alway 发生故障时,容器会自动重启
-p 宿主机地址:容器地址
-d 后台运行
-v 宿主机路径:容器路径 (此参数写不也能写在镜像名称前面,否则无法生效)
另外:镜像名称须写最后
注:镜像名称写最后
6、网页启动地址:http://localhost:7777
7、push 到远程仓库中
二、Linux中pull 并且运行容器
1、首先登录远程仓 docker login
输入远程仓DockerID和密码登录
登录成功!
2、docker pull “imageName”,名称格式如下,可直接复制过来
3、创建容器
docker run -d -p 7777:80 --name=aspnetCoreDockerdemo --restart=always -v /app/wwwroot/UploadFiles/:/app/wwwroot/UploadFiles/ aspnetcoredockerdemo
--name=容器名称
--restart=alway 发生故障时,容器会自动重启
-d 后台运行
-v 宿主机路径:容器路径 (此参数写不也能写在镜像名称前面,否则无法生效)
另外:镜像名称须写最后
-p 宿主机地址:容器地址 此处的 8081:80 指定端口,8081为外网访问端口,80 为容器开放的端口。**记住:这里容器端口必须要在之前的Dockerfile文件中指定过 如EXPOSE 80,文件中可以指定多个端口**
4、测试访问
-
linux内部访问:curl 127.0.0.1:808
-
外网可使用外网IP:8081访问
附上常用命令
docker login
docker logout #you can user logout first then login second if want to exchange the current user
docker ps #列出所有正在运行的容器
docker ps -a #列出所有的容器
docker image ls #列出所有的镜像
docker stop #暂停容器
docker rm #删除容器
docker build -t aspnetcoredockerdemo . #创建镜像
docker run -d -p 7777:80 --name=aspnetCoreDockerdemo --restart=always -v /app/wwwroot/UploadFiles/:/app/wwwroot/UploadFiles/ aspnetcoredockerdemo #创建容器 注意端口80必须是镜像在 dockerfile中开放的端口