Docker常用命令

查询存在的容器

docker ps -a

查询日志

docker logs containername

启动容器

docker start containername

停止容器

docker stop containername

重启容器

docker restart containername

删除容器

docker rm  containername/CONTAINERID

停止所有容器

docker stop $(docker ps -aq)

管理镜像

docker磁盘使用情况,可清理信息

docker system df

查看镜像空间使用情况的详细信息

docker system df -v
Images/CONTAINERS=0,是没有使用的镜像;
Containers/SIZE,实际占用大小;
VOLUME/LINKS=0,所属容器为0,可以清理;

进入运行中的容器

docker exec -it CONTAINER_NAME /bin/bash
或 docker exec -it CONTAINER_NAME /bin/sh

Ctrl+D,退出运行中的容器。

汇总查看文件大小

du -sh *

进入需要删除的目录,删除当前目录下的所有文件

rm -f *

删除镜像

docker rmi <IMAGE_ID>
镜像的运行实例就是容器,或者说容器会运行当前镜像的实例,所以停止容器-删除容器-再删除镜像。

删除所有未打 tag 的镜像

docker images --no-trunc|grep '<none>'|awk '{print $3}'|xargs docker rmi

要获取所有容器名称及其IP地址

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress}}' $(docker ps -aq)

镜像缺少libgdiplus

The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies.
解决方法是在生成镜像(Dockerfile)时安装缺失的包,然后重新拉取镜像部署服务。

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev

Linux下dotnet部署服务时缺少libgdiplus

Dockerfile

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

#FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

EXPOSE 9000

WORKDIR /app

COPY . /app

ENTRYPOINT ["dotnet", "DemoServices.dll"]
posted @ 2020-12-15 18:18  wesson2019  阅读(101)  评论(0编辑  收藏  举报