使用VsCode通过Docker发布.NetCore项目

本文详细介绍了如何删除Docker容器和镜像,包括停止、批量操作、依赖解除,以及.NetCore项目在Docker中的构建和运行教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker相关命令

1.删除容器

获取容器信息命令:

docker container ls -a     #获得容器信息
docker container ls -a  -p   #获得容器id

如果你要删除的 container 还是运行状态,那么就要先把容器停止了:

docker container stop <container ID>

找到需要删除的容器对应的 container ID 或者名字,进行删除:

docker container rm  <container ID>

批量停止容器:

docker container stop $(docker container ls -a -q)

批量删除容器:

docker container rm $(docker container ls -a -q)

2.删除镜像

删除镜像文件的方法和删除容器的方法是一样的,将删除容器命令中的 container 更改成 image 即可

一.

在这里插入图片描述
这是由于镜像正在被容器使用,用命令停止容器,移除容器后,在移除镜像即可

二.


并且确定此镜像未被容器使用,这是由于镜像被 repositories (仓库)引用,解决方法如下:

删除 Repository

被删除的 ImageID,这里存在1个 Repository 名字引用,解决方法如下:
在这里插入图片描述
即删除时指定名称,而不是 IMAGE ID

docker rmi <Repository:tag>

查看镜像,已删除

三.

出现以下错误:

Error response from daemon: conflict: unable to delete c9cde4658340 (cannot be forced) - image has dependent child images

这样的错误,原因是有另外的 image FROM 了这个 image,可以使用下面的命令列出所有在指定 image 之后创建的 image 的父 image

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

解决方法:

其中 xxxxxx 是报错 image 的 id,在文章的例子中就是 c9cde4658340 。从列表中查找到之后就可以核对并删除这些 image,然后此镜像就可以移除了

四: none镜像

有时运行下面命令会出现如下错误:

docker images -a

在这里插入图片描述
并且这些虚悬镜像删不掉,解决办法:

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

删除关联的依赖镜像,关联的none镜像也会被删除

或者

docker rmi $(docker images -q -f dangling=true)

直接移除所有的虚悬镜像

拓展:
# 停止所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
 
# 删除所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
 
# 删除所有 none 容器
docker images|grep none|awk '{print $3 }'|xargs docker rmi

.NetCore 项目在 Docker 中发布运行

1.在项目中创建 Dockerfile 文件

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]

2.创建并且运行 项目 Docker 镜像

一.打开项目所在文件夹

二.使用下面命令创建运行项目 Docker 镜像

$ docker build -t aspnetapp .
$ docker run -d -p 8080:80 --name myapp aspnetapp

三.在浏览器中访问 http://localhost:8080 访问项目

### 配置和使用 Mac 系统上的 VSCode 进行 Docker 开发 #### 安装必要的工具 为了能够在 Mac 上通过 VSCodeDocker 环境进行开发,需先安装 Docker Desktop 和 Visual Studio Code (VSCode),以及确保已安装了 Remote-Containers 扩展[^1]。 对于 macOS 用户来说,在完成上述软件的安装之后,还需要确认系统已经启用了 SSH 服务以便后续操作能够顺利执行。可以通过命令 `sudo systemsetup -setremotelogin on` 来开启远程登录功能,从而允许通过 SSH 访问本机资源[^2]。 #### 设置 Docker 容器并连接到 VSCode 创建一个新的 Ubuntu 容器作为例子来展示具体过程: ```bash docker run -d --name vscode-docker-dev \ -v /path/to/local/code:/workspace \ ubuntu:20.04 tail -f /dev/null ``` 这里 `-d` 参数表示以后台模式运行容器;`--name` 给定容器名称;`-v` 将主机目录挂载至容器内部路径 `/workspace`; 使用 `tail -f /dev/null` 可保持容器持续运行而不退出。 接着打开 VSCode 并点击左侧活动栏里的绿色图标切换到 "Remote Explorer" 视图,选择 “Attach to Running Container”,从中挑选之前启动的那个名为 `vscode-docker-dev` 的实例即可进入该容器环境中工作。 此时可以在终端里验证当前的工作空间确实位于所指定的位置,并且可以正常使用各种 Linux 命令来进行项目构建等活动。同时也可以利用 VSCode 提供的强大编辑能力处理源文件,就像平常一样编写代码、设置断点调试程序等。 #### 调试与优化体验 当一切准备就绪后,就可以按照常规方式进行编码作业了。值得注意的是,由于涉及到跨平台的操作(即在 MacOS 主机上调用 Linux 下的服务),可能会遇到一些兼容性方面的小麻烦,比如权限管理或是某些特定于操作系统的库缺失等问题。这时就需要依据实际情况调整配置参数或者寻找替代方案加以解决。 另外,考虑到性能因素,建议合理规划好共享卷映射关系,尽量减少不必要的 I/O 操作次数,提高整体工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值