创建镜像
生成Dockerfile
基于asp.net core application
// 如果你构建的镜像是基于另一个镜像,那么就需要用到from指令,此处是基于dotnet 的sdk镜像
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
// 设置容器的运行目录
WORKDIR /src
// 将项目文件拷贝到容器中
COPY *.csproj ./
// 文件拷贝期间或者完成后需要运行的命令,如还原项目依赖项等
RUN dotnet restore
COPY . .
WORKDIR "/src/."
RUN dotnet build "testEFCore.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "testEFCore.csproj" -c Release -o /app/publish
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
WORKDIR /app
COPY --from=publish /app/publish .
// 定义容器的入口,可以是应用启动的命令
ENTRYPOINT ["dotnet", "testEFCore.dll"]
构建镜像
docker build -t aspnetapp .
运行镜像
docker run -d -p 8080:5000 --name myCore -v ${pwd}:/app/out aspnetapp
发布镜像
运行没有问题,就可以发布到 docker hub
docker login
docker run 用户名/镜像名
拉取镜像
发布到 docker hub 后,就可以直接使用命令拉取
docker pull 镜像名:tag
常用的 docker 命令
docker version
docker --version
docker pull
docker image ls
docker rmi
docker run
docker ps
docker ps -a
docker rm
--以sqlserver为例
-- 进入交互模式
docker exec -it `containerName` /bin/bash
docker exec /opt/mssql-tools/bin/sqlcmd -S . -U sa -P xxx
-- 进入交互模式
docker exec -it `containerName` /opt/mssql-tools/bin/sqlcmd -S . -U sa -P xxx