业务背景
上次的邮件工具写完之后,需要发布到公司服务器上的docker运行,于是我又学习了docker,以下是一些心得。
推荐工具
一开始是用的power shell连接服务器,后面因为要上传文件,所以推荐一个小工具叫electerm,也可以用其他工具这个不影响什么,以下是下载地址。
阿里云网盘地址
Docker安装
docker的安装我这里就不详述了,其他博客很详细,但是要注意docker版本,不然很容易造成dockerfile生成失败,之前我下的是12.0.1版本dockerfile报错,后面同事帮我下的最新的就OK了,这里我也指一个链接给你们学习,很详细。
Docker入门
正文
- 先用electerm或其他工具把源码丢进服务器。
- 用cd [文件名] 进入到源码根目录,例如:cd sendmail。
- 在根目录建一个dockerfile,这里建议在本地环境就建好再丢进去,不过用工具也可以直接改。
ps:dockerfile实质上就是脚本命令,如果大家实在不知道咋写的话,可以直接把以下代码sendmail换成你们的项目名即可,不过是建立在你没有在外面打包,直接在linux上打包可以用下面的代码。因为我是新手有些理解可能不太对,不好在这解释,建议去上面推荐的博客理解,我这里只是演示追求打通即可。
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
COPY ["sendmail/sendmail.csproj", "sendmail/"]
RUN dotnet restore "sendmail/sendmail.csproj"
COPY . .
WORKDIR "/src/sendmail"
RUN dotnet build "sendmail.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "sendmail.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "sendmail.dll"]
要配环境变量则需要加
#环境变量 (#表示注释)
写法一:ENV strMailFrom=xxxx@qq.com
写法二:ENV strMailFrom xxxx@qq.com
4. cd /root/gct.sendmail进入根目录,dockerfile最好要放在根目录,不然后面的操作可能会导致找不到文件,这里的路径要看你们自己的路径,这里只是参照。
5. 创建镜像
docker build -f [docker文件名称] -t [镜像文件名:版本]
docker build -f Dockerfile -t sendmail:v1 .
6. 查看镜像
docker images
7.运行镜像,在运行的时候会自动创建容器,如果已经运行过想删除需要先删除容器
docker run sendmail:v1
8. 查看容器
docker ps -a
9. 运行容器
docker run -i -t [容器名称:版本]
docker run -i -t sendmail:v1
10. 删除容器
docker rm 容器id
11. 删除镜像
docker rmi 镜像id或容器名称:版本
尾声
入门最基础的步骤就是这些啦,每一次改文件都需要重新执行一次生成镜像哦。
版权声明
博客园FaceMan与CSDN中的FaceMan0814为同一人,转载请注明出处。