Docker 常用操作

Docker 常用命令

docker --version 查看当前安装版本

docker ps 查看正在运行的容器

docker images 查看本地运行的镜像

docker run 运行本地容器

docker pull 拉取远程镜像到本地

docker run -p 8123:80 -d --name myapi myapi 本地运行镜像

docker run -p 8123:80 -e AllowedHosts=192.168.1.1 -d --name myapi myapi 本地运行镜像 (设置环境变量)

docker build -t aspnetcoredocker . 生成本地镜像

docker stop 758f9c904bb8 停止正在运行的镜像

dcoker start 758f9c904bb8 开启已经启动过得镜像

docker researt 758f9c904bb8 重新启动正在运行的镜像

docker stop $(docker ps -a -q) 停止所有的container

docker rm $(docker ps -a -q) 删除全部container

docker rmi <image id> 删除单个镜像

docker rmi $(docker images | grep "^<none>" | awk "{print $3}") 删除none的镜像

docker rmi $(docker images -q) 删除所有的镜像

docker exec -it mysql bash
docker exec -it {cid} /bin/sh
进入到控制台模式

docker logs mysql 查看镜像日志
docker tag dockerweb springleee/dockerweb TAG

docker volume create todo-db 创建 volume
docker volume inspect todo-db 查看 volume
docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started 映射 volume

.Net Core 镜像

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
 
COPY . .

EXPOSE 80  
ENTRYPOINT ["dotnet", "dockerWeb.dll"]
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443 


FROM mcr.microsoft.com/dotnet/sdk:5.0 AS publish
WORKDIR /src
COPY ./ DockerWeb2/
WORKDIR "/src/DockerWeb2"
RUN dotnet restore "DockerWeb2.csproj"
RUN dotnet publish "DockerWeb2.csproj" -c Release -o /app/publish 
 

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerWeb2.dll"]

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["DockerWebAPI/DockerWebAPI.csproj", "DockerWebAPI/"]
RUN dotnet restore "DockerWebAPI/DockerWebAPI.csproj"
COPY . .
WORKDIR "/src/DockerWebAPI"
RUN dotnet build "DockerWebAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "DockerWebAPI.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerWebAPI.dll"]

Docker Compose

version: '3.7' 
services:
  docker_webapi:
    image: docker_webapi_1.0.0
    build:
      context: .
      dockerfile: Dockerfile
    environment:
      - ASPNETCORE_DBCONN=mongodb://192.168.183.230:27089
      - ASPNETCORE_DBNAME=dockerdb 
    ports:
      - "8001:80"
    

docker-compose up -d

docker-compose down

Docker 运行Postgres

docker pull postgres
docker run --name=postgres -p 15432:5432 -e POSTGRES_PASSWORD=postgres -d postgres

-v /var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres -e TZ=Asia/Shanghai

posted @   SpringLeee  阅读(218)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示