Dockerfile 中的 CMD 与 ENTRYPOINT

Docker 

Dockerfile 中的 CMD 与 ENTRYPOINT exec 模式和 shell 模式 CMD 和 ENTRYPOINT 指令都支持 exec 模式和 shell 模式的写法,所以要理解 CMD 和 ENTRYPOINT 指令的用法,就得先区分 exec 模式和 shell 模式。这两种模

Harbor (https)安装和配置

Docker 

Harbor (https)安装和配置 本文档使用 cfssl 1.6.5版本来生成 SSL证书,以 docker compose 安装形式来安装 harbor 2.12.4 版本。 背景信息 名称 IP harbor 服务器 192.168.4.11 docker 客户端 192.168.4.6

在使用 docker history 查看镜像层发现 /bin/sh -c #(nop)

Docker 

问题 在执行docker history查看 image 镜像出现类似的信息: <missing> 6 days ago ENV NGINX_PKG=/usr/local/nginx 0B buildkit.dockerfile.v0

使用 DaoCloud 进行镜像加速

Docker 

使用 DaoCloud 进行镜像加速 很多镜像都在国外,比如 gcr。国内下载很慢,需要加速。 DaoCloud 为此提供了国内镜像加速,便于从国内拉取这些镜像。 最简单的使用方法: 增加前缀(推荐): k8s.gcr.io/coredns/coredns => m.daocloud.io/k8s.

Docker使用代理拉取镜像

Docker 

前言 一些镜像源(比如:registry.k8s.io、k8s.gcr.io等)由于某种原因无法下载的情况下,可以在Docker中配置代理来拉取。 解决方法 查看docker的systemd.service的配置文件位置: 执行systemctl status docker.service命令来查看

docker中的gosu和su-exec工具

Docker 

volume的权限问题在Docker中,需要把host的目录挂载到container中作为volume使用时,往往会发生文件权限问题。 常见的现象是,container对该路径并无写权限,以致其中服务的各种千奇百怪的问题。导致这类问题的原因,是container内外的UID不同。 比如,host当前使用docker的用户UID是1000(这是默认第一个用户的UID)。 如果container内的U

docker网络解析不稳定

Docker 

新创建的容器,可能在容器中还没有缓存到需要的DNS缓存,就会造成部分网络解析不通。可以使用以下两种方法解决此问题: 方法一,添加host: 在docker 命令行中: --add-host='api.embbnux.com:10.98.10.98' 在 docker-compose 中添加: e

docker容器的health健康状态检查

Docker 

Docker 原生健康检查能力自 1.12 版本之后,Docker 引入了原生的健康检查实现。对于容器而言,最简单的健康检查是进程级的健康检查,即检验进程是否存活。Docker Daemon会自动监控容器中的PID1进程,如果docker run命令中指明了restart policy,可以根据策略自动重启已结束的容器。在很多实际场景下,仅使用进程级健康检查机制还远远不够。比如,容器进程虽然依旧运

alpine 和 Debian 镜像更改源,及安装软件并删除缓存

Docker 

alpine 和 Debian 镜像更改源,及安装软件并删除缓存:alpine:sed -i &#39;s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g&#39; /etc/apk/repositories &amp;&amp; \ apk update &amp;&amp; \ apk add --no-cache gcc Debian:se

Flannel实现Docker容器多主机通信

Docker 

flannel网络概述flannel 是 CoreOS 开发的容器网络解决方案。flannel 为每个 host 分配一个 subnet(子网),容器从此 subnet 中分配 IP,这些 IP 可以在主机间路由,容器间无需 NAT 和 port mapping(端口映射) 就可以跨主机通信。flannel的作用因为flannel实现跨主机的子网通信是通过主机中的dr0网卡进行通信的,由flann