// 查看镜像 docker images // 查看 容器 docker ps // 查看容器文件 sudo docker inspect 44fc0f0582d9
docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况
du -hs /var/lib/docker/ 命令查看磁盘使用情况
清理当前未运行的所有Dock
docker system prune
docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像
停止docker服务。
systemctl stop docker
启动docker服务。
systemctl start docker
2 新建 .net Core 项目,将其复制到linux环境的目录下
进入 目录 cd / WebApp (区分大小写)
新建Dockerfile 文件, touch Dockerfile
vi Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 As build // 这里选择dotnet的版本 WorkDir /app // 新建工作目录,这里其实是一个临时目录 Copy *.csproj ./ // 复制当前文件夹下的csproj 文件到 /app工作目录 run dotnet restore // 恢复项目的nuget包 COPY . ./ // 复制当前目录【项目文件夹】的文件搭到 工作目录 /app下,第一个点.代表 当前项目所在的目录,第二个 ./ 代表工作目录【其实是临时目录】 run dotnet publish -c Release -o out // 使用命令发布文件到 /app/out目录下 【可回到根目录 使用 find -name out 查找】
-------这里只运行半部分,可以看一下运行结果,
执行 docker build -t webapp .[注意最后的点和空格] 格式:docker build -t [镜像名称,例如webapp:2.0]空格 .
发布目录:
查看目录
接下来补充制作镜像的部分
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app // 设置容器的工作目录
COPY --from=build /app/out . // 将上面发布的文件复制到 容器的工作目录,注意后面的.
EXPOSE 9999 // 设置容器的监听端口
ENTRYPOINT ["dotnet", "WebApp.dll"] // 启动应用
完整文件:
[root@iZ2ze6qstyvxjb86krvizoZ WebApp]# vi Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 As build
WorkDir /app
Copy *.csproj ./
run dotnet restore
COPY . ./
run dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/out .
EXPOSE 9999
ENTRYPOINT ["dotnet", "WebApp.dll"]
执行 docker build -t webapp . 接下来是漫长的等待.....
创建容器 并且启动
docker run -d -p 9999:9999 --name webapp webapp 格式:docker run -d -p 【外部端口】:【容器内部端口,即EXPOSE 8888 或 ENV ASPNETCORE_URLS http://0.0.0.0:8888】 -- webapp[必须小写,容器名称] webapp 【前面生成的镜像名称,必须小写】