背景
使用Docker拉取镜像,发现有异常提示,经过排查发现是镜像站点关闭了。在互联网上找了很多公共的镜像都基本关闭了,163、百度云、腾讯云等云镜像站点基本关闭了,经过查找各种大学的Docker镜像站点也都下线了。只能继续查找可用的镜像站点,找到后更改Docker镜像站点。
Docker镜像设置
Ubuntu/CentOS
安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'...
6个月前 (06-08) 896℃ 0评论
0喜欢
背景
项目使用jenkins自动构建应用,原本构建没有没有什么问题,一天突然就发生了异常且多次重试结果并没有改变。为了更快的构建完成项目,所以就找到简单的处理方法来解决问题。
异常信息
RUN npm install -g cnpm@7.1.0 –registry=https://registry.npm.taobao.org—> Running in 47877716e592[91mnpm ERR! [0m[91mcode CERT_HAS_EXPIRED[0m[91mnpm ERR![0m[91m errno CERT_HAS_EXPIRED[0m[91mnpm ERR![0m[91m request to https://registry.npm.taobao.org/cnpm failed, reason: certifica...
11个月前 (01-22) 1599℃ 0评论
0喜欢
背景
客户新提需求,需要增加一张报表,报表需要增加统计图表。因为客户需要将数据以及统计图表一并导出到word中,所以没有使用前端统计相关的类库,比如:echarts、highcharts等库。虽然可以使用前端相关类库导出word,但是并不能满足现有需求。后台服务使用的是.net 5,统计图完成后发现中文出现乱码。如下图:
问题
出现以上乱码问题,其一可能是统计类库不支持中文导致的,也有可能是docker镜像中缺少相应的中文字体。因为在本地开发环境测试并没有问题,更新到测试环境后才发现以上乱码情况,所以应该是镜像中缺少相关中文字体而导致的。
解决
既然是缺少中文字体,那就安装字体就行了。在Windows系统中复制需要的字体到新建名称为chinese文件夹下,将此文件夹放到与dockerfile同一目录下即可。dockerfile文件中新增内容如...
1年前 (2023-09-24) 1175℃ 0评论
1喜欢
背景
一个前端的VUE项目,需要打一个Docker的镜像离线包。通过命令行构建镜像,通过等待比较长的时间后,NPM构建抛出异常。
异常内容
以下是关于这次异常的详细信息:
=> ERROR [build-stage 10/10] RUN npm run build 1222.9s
------
> [build-stage 10/10] RUN npm run build:
#18 7.649
#18 7.649 > vue-antd-admin@0.7.4 build /app
#18 7.649 > vue-cli-service build
#18 7.649
#18 24.59
#18 2...
2年前 (2023-02-23) 1396℃ 0评论
0喜欢
背景
.net core 应用中使用了Excel文件导出,发现Excel导出失败,导出的操作出现了异常。看了一下是Gdip的这个异常。这个异曾经见到过,记得也很快解决了,不晓得为什么又会出现呢?仔细看了一下,详细错误还是有点差别。经过确认上一次安装的libc6-dev、libgdiplus是存在的,并没有丢失或者损坏。
根据异常信息,基本可以确定是引用System.Drawing.Common类库引起的问题,经过排查发现引用的Excel组件Magicodes.IE.Excel.Abp包中有使用System.Drawing.Common。前几天还好好的,现在为何System.Drawing.Common不支持非Windows平台呢?只是确定引用的System.Drawing.Common库的版本是6.0,其他的就没有太多线索。
最后又看一遍异常信息,根据异常提示打开所提示...
3年前 (2022-04-08) 1717℃ 0评论
28喜欢
背景
在.net 5应用中,使用了Excel文件处理,在Docker容器中运行就会出现关于libgdiplus的异常。虽然在Dockerfile中可以使用以下内容解决异常,但是这个速度太慢了。每次构建慢的让人怀疑人生,最重要的是还可能失败。
RUN apt-get update && apt-get install -y libgdiplus libc6-dev && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
为了提高构建速度,所以使用官方的基础镜像再二次构建一个基础镜像,默认安装 libgdiplus ,这样每次构建速度就会提升好多好多。默认安装了libgdiplus等库,以便支持Excel导入导出
构建基础镜像的Dockerfile
Dockerfile
...
3年前 (2021-12-18) 1653℃ 0评论
64喜欢
在工作当中有时候需要查看指定容器的日志记录,当日志比较多的时可以通过参数来进一步筛选。
命令格式
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(...
4年前 (2021-05-19) 1246℃ 0评论
4喜欢
背景
jenkins突然无法自动构建镜像,经过确认并非是无法构建,而是磁盘空间满了。 关于手动清理Docker日志的方法,自己曾经也处理过,但是容器多起来就相当麻烦。
在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件.
查看
#!/bin/sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
清理
#!/bin/sh
echo "======== start clean docker ...
4年前 (2021-04-10) 1224℃ 0评论
26喜欢
docker build 或是 pull 命令就会产生临时镜像。
//删除无效的临时镜像
docker rmi $(docker images -f "dangling=true" -q)
其他方法
停止容器
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
转载请注明:清风亦平凡 » 删除Docker中为none的Image/镜像...
4年前 (2021-04-08) 916℃ 0评论
3喜欢
构建了自己常用的基础镜像,就打算推送到Docker Hub上。首先使用docker login 进行登录,然后就使用docker push 执行镜像推送,最后返回错误信息如下:
denied: requested access to the resource is denied
如下图:
在网上找了下相关信息,大部分都是说认证、登录等信息,按照相关信息试一试也没有什么用。最后发现是镜像名称不符合Docker规范,从而导致了镜像推送被拒绝。
推送的镜像命名规范如下:
登录名/镜像名称:标签
例如:
skyfinder/microsoft-dotnet-2.1-aspnetcore-runtime-libgdiplus:latest
如果现有的镜像名称不符合规范,可以使用tag打一个标签,如下:
docker tag skyfin...
4年前 (2020-09-03) 1489℃ 0评论
0喜欢
保存镜像
docker save <myimagename>:<tag> | gzip > <myimagename>_<tag>.tar.gz
加载镜像
gunzip -c <myimagename>_<tag>.tar.gz | docker load
转载请注明:清风亦平凡 » Docker容器使用gzip压缩保存/加载镜像...
4年前 (2020-07-16) 1276℃ 0评论
13喜欢
网站内容在Windows环境下并没有出现任何问题,但是在Linux 系统Centos的Docker环境下就出现了相关错误。这让人一脸蒙逼啊, 未能加载libdl库。使用了EPPlus处理Excel,其内部设置了字体大小以及颜色之类的东西,使用了‘ System.Drawing.Font ’的相关内容。由于Linux系统中Docker环境下缺少相关库,故而出现异常。具体错误请看以下内容。
报错内容:
fail: System.Exception[-2146233036] The type initializer for ‘Gdip’ threw an exception. System.TypeInitializationException: The type initializer for ‘Gdip’ threw an exception. —> System...
5年前 (2019-12-31) 1607℃ 0评论
3喜欢
使用Docker for Windows时,我们实际上正在使用在特殊Hyper-V VM中运行的小型(自定义)LinuxKit Linux。使用了相当多的方式使在Windows中使用Docker更加便利,似乎容易让人忘记它还在在Linux内核上运行。
请注意,这是关于默认的“Linux容器”模式。它不适用于“Windows容器”模式。
这只是一个可以访问Linux VM的容器,因此您可以执行诸如ps aux查看在VM中运行的守护程序之类的操作。这不是一个完整的操作系统。
首先需要创建一个具有完全root访问权限的容器,然后从那里访问文件系统。
获取可访问Docker守护程序的容器 运行具有完全root访问权限的容器 切换到主机文件系统
构建镜像
使用Docker构建一个镜像,Dockerfile如下所示:
FROM ubuntu
RUN...
5年前 (2019-08-23) 1489℃ 0评论
2喜欢
Docker会将容器应用标准化输出的内容做为日志进行记录,并永久保存在磁盘上。久而久之容器日志占用磁盘空间就越来越大。使用以下命令可以查看指定容器日志,如下:
docker logs -f containerId
日志位置
对应的Docker容器的日志位置一般如下:
/var/lib/docker/containers/containerid/containerid-json.log
containerid是指应用容器的id
通过以下命令确定要清理日志的容器id,如下:
#查找正在运行的容器列表docker ps#根据容器列表的CONTAINER ID 来查找完整的容器iddocker inspect containerid
查找容器id
日志清理
cat /dev/null >/var/lib/docker/cont...
6年前 (2019-01-07) 1362℃ 0评论
0喜欢
2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。
一、环境配置的难题
软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?
用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可能还要配置环境变量。
如果某些老旧的模块与当前环境不兼容,那就麻烦了。开发者常常会说:”它在我的机器可以跑了”(It works on my machine),言下之意就是,其他机器很可能跑不了...
6年前 (2018-12-22) 874℃ 0评论
0喜欢
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)CentOS 6.5 (64-bit) 或更高的版本
CentOS 安装Docker的必要条件
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
使用 yum 安装(CentOS 7)
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本
uname -r
安装 Docker
...
6年前 (2018-12-20) 1013℃ 0评论
5喜欢
CentOS系统下执行docker info后出现两条警告, 如下:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
如下图:
解决办法,编辑:/etc/sysctl.conf 并添加如下内容:
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1
编辑保存之后,执行如下内容:
sysctl -p
完成之后,再次使用docker info进行查看就发现已经没有这两条警告了,这样此问题就解决了!这里做个记录吧!!!
转载请注明:清风亦平凡 » 解决CentOS系统下docker inf...
6年前 (2018-12-18) 1091℃ 0评论
4喜欢
最近使用.net core写了一个简单的网站存活监测小程序,每十分钟进行一次检测,如果异常或者网站无法访问就通过腾讯云短信服务进行通知。在Windows 和 Linux 系统中运行均正常,但放到Linux系统下Docker环境中,获取到的时间就慢8个小时,默认似乎不是东八区了。记得之前也遇到过这个问题,使用了一个.net Core类库(NodaTime)解决的,详情请见:.net Core 中DateTime在Linux Docker中与Windows时间不一致 。但是这次不想用多余的类库来解决,所以通过同步时间来解决。
共享主机的localtime
创建容器的时候指定启动参数,挂载localtime文件到容器内 ,保证两者所采用的时区是一致的。
docker run --name qq -v /etc/localtime:/e...
6年前 (2018-12-14) 3207℃ 2评论
13喜欢
相关问题
在windows10下安装docker for windows,随着用docker pull image文件后,虚拟机的镜像越来越大,但C盘的容量越来越小了,于是就想修改下相关路径到其他盘符。
原因分析
windows上安装的docker其实本质上还是借助与windows平台的hyper-v技术来创建一个linux虚拟机(默认使用的镜像是MobyLinuxVM),你执行的所有命令其实都是在这个虚拟机里执行的,所以所有pull到本地的image都会在虚拟机的Virtual hard disks目录的文件中,这个文件就是虚拟硬盘文件。如果要想改变路径只需要在hyper-v管理器里设置就可以了。默认的安装路径是C:\Users\Public\Documents\Hyper-V\Virtual hard disks下。
解决方案
一、当你的刚刚安装docker for windows后或...
6年前 (2018-12-08) 2516℃ 0评论
2喜欢
Docker中的settings里的Shared Drives 选择对应盘符后,点击Apply后无法生效。试了两遍都不行,这是有问题的 。
解决办法
win+R ,键入gpedit.msc,出现如下界面,找到高亮处的网络访问:本地账户的共享和安全模型,选择如图中的 经典 选项
转载请注明:清风亦平凡 » Docker for Windows 设置的Shared Drives 设置不生效
...
6年前 (2018-12-07) 1289℃ 0评论
3喜欢
什么是 Docker 容器
正在运行的镜像(Image)实例称为容器。 Docker使用Docker镜像作为只读模板来进行启动。 如果您启动镜像,则表示您拥有此镜像的运行容器。 当然,您可以拥有许多相同镜像的运行容器。 我们使用命令“docker run”来运行docker容器。
查看Docker容器列表
要查看容器,请运行以下命令:
docker ps [ OPTIONS ]
要列出正在运行和已停止的容器,请使用-a选项,如下所示:
docker ps -a
CONTAINER ID –容器的唯一ID
IMAGE –已启动容器的基本映像
COMMAND –启动容器时使用的命令
CREATED –创建容器的时间
STATUS –容器的当前状态(Up或Exited)
PORTS –端口号(如果有),转发到doc...
6年前 (2018-11-16) 2340℃ 0评论
2喜欢
一、下载docker-compose文件
curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
二、添加可执行权限
chmod +x /usr/local/bin/docker-compose
三、测试安装结果,查看版本。
docker-compose –version
转载请注明:清风亦平凡 » Linux系统安装docker-compose...
6年前 (2018-10-19) 1038℃ 0评论
0喜欢
docker启动命令,docker重启命令,docker关闭命令
启动
systemctl start docker
守护进程重启
sudo systemctl daemon-reload
查看docker运行状态
sudo service docker status
重启docker服务
systemctl restart docker
sudo service docker restart
关闭docker
service docker stop
systemctl stop docker
转载请注明:清风亦平凡 » docker启动,重启,关闭命令
...
6年前 (2018-10-18) 1105℃ 0评论
0喜欢
Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具,以 yaml 格式的数据来保存容器配置,使用更简单的命令完成对容器的管理。此外 docker-compose.yml 还起到一个说明文档的作用, 一切配置在里面显得一目了然,就不用另外单独写部署文档了。
1. 安装 Docker Compose
# curl方式安装(推荐)
# 如果权限不够,先执行 sudo -i 切换到root帐号
curl -L https://get.daocloud.io/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /tmp/docker-compose
chmod +x /tmp/docker-compose
sudo mv /tmp/docker-c...
6年前 (2018-10-17) 1253℃ 0评论
0喜欢
使用Dockerfile来构建镜像。
用法说明
选项
用法
说明
FROM
FROM <image>:<tag>
指定基础镜像
MAINTAINER
MAINTAINER <name> <email>
创建者信息
RUN
RUN <command>
执行容器操作,主要用来安装软件
CMD
CMD [“executable”,”param1″,”param2″]
CMD command param1 param2
CMD [“param1″,”param2”]
镜像启动时的操作,会被容器的启动命令覆盖。
指定多次则最后一条生效
ENTRYPOINT
同 CMD,与CMD差别主要
在...
6年前 (2018-10-16) 966℃ 0评论
0喜欢