Alpine Linux

Docker镜像仓库

主宰稳场 提交于 2020-10-29 04:25:43
1、编写一个Dockerfile [root@iZ2zeir6vcnpz8qw3t455tZ ~] # mkdir Docker [root@iZ2zeir6vcnpz8qw3t455tZ ~] # cd Docker/ [root@iZ2zeir6vcnpz8qw3t455tZ Docker] # cat Dockerfile FROM alpine CMD ping baidu.com 2、打包镜像文件 # -t : tag标签。镜像名字 # . : 当前目录下工作 [root@iZ2zeir6vcnpz8qw3t455tZ Docker] # docker build -t hello . Sending build context to Docker daemon 2 .048kB Step 1 /2 : FROM alpine latest: Pulling from library/alpine cbdbe7a5bc2a: Already exists Digest: sha256:9a839e63dad54c3a6d1834e29692c8492d93f90c59c978c1ed79109ea4fb9a54 Status: Downloaded newer image for alpine:latest --- > f70734b6a266 Step 2 /2 :

RocketMQ系列:docker搭建rocketmq单机环境

℡╲_俬逩灬. 提交于 2020-10-15 00:54:01
1.引言 前面使用了rocketmq的git工程中的fast-try.sh搭建了单broker集群,这里介绍一个更快地环境搭建方式,利用docker快速搭建一套rocketmq环境。 2.环境准备 2.1 docker搭建模式 docker:用于搭建单节点broker模式/ dledger模式 docker-compose:利用docker-compose快速搭建2broker的集群 k8s docker环境搭建参考: Ubuntu下搭建docker环境 这里先介绍单节点broker模式的搭建 2.2 验证docker环境 执行如下:不报错即可 docker run docker.io/hello-world 3. 单节点模式搭建 项目地址: https://github.com/apache/rocketmq-docker 3.1 下载对应工程 git clone https://github.com/apache/rocketmq-docker.git 3.2 编译rocketmq镜像 #进入目录 cd rocketmq-docker/image-build #编译镜像,这里我编译4.7.1的镜像,我的环境是Ubuntu,执行如下命令 sh build-image.sh 4.7.1 alpine #如果你用的是centos,想编译4.5.0的镜像,可以执行如下 sh build

Alpine Linux 使用简介

耗尽温柔 提交于 2020-10-07 05:18:59
一、Alpine简要介绍 Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿尔卑斯山胜地。 Alpine Linux 网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.”概括了以下特点: 1、 小巧: 基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB; 2、 安全 :面向安全的轻量发行版; 3、 简单 :提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。 4、适合 容器使用 :由于小巧、功能完备,非常适合作为容器的基础镜像。 <!--more--> 二、Alpine更新国内源 # Alpine的源文件为: /etc/apk/repositories, # 默认的源地址为: http://dl-cdn.alpinelinux.org/ 可以编辑源文件 /etc/apk/repositories, 采用国内阿里云的源,文件内容为: https://mirrors.aliyun.com/alpine/v3.9/main/ https

【翻译】.NET 5 Preview8发布

让人想犯罪 __ 提交于 2020-10-03 03:07:24
【翻译】.NET 5 Preview8发布 今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本,这篇文章描述了.NET5.0版本中的一系列功能。 You can download .NET 5.0 , for Windows, macOS, and Linux: Installers and binaries Container images Snap installer Release notes Known issues GitHub issue tracker 今天同时也发布了 ASP.NET Core 和 EF Core 。 要使用.NET5我们需要最新版本的 Visual Studio (包括 Visual Studio for Mac) 才能使用 .NET 5.0. .NET 5.0包括许多改进,特别是单个文件应用程序,较小的容器映像,更强大的JsonSerializer API,一整套可空的引用类型注释以及对Windows ARM64的支持。 在NET库,GC和JIT中,性能得到了极大的提高。 ARM64是性能投资的重点,可提高吞吐量并减少二进制文件。 .NET 5.0包括新的语言版本C#9和F#5.0。 .NET 5

Docker | 优化 Docker 镜像大小常见方法

怎甘沉沦 提交于 2020-09-30 21:46:35
作者:阳明 转载自:k8s技术圈 平时我们构建的 Docker 镜像通常比较大,占用大量的磁盘空间,随着容器的大规模部署,同样也会浪费宝贵的带宽资源。本文将介绍几种常用的方法来优化 Docker 镜像大小,这里我们使用 Docker Hub 官方上的 Redis 镜像进行说明。 手动 管理 我们能够直接想到的方法就是直接修改官方的 Redis 镜像 Dockerfile 文件,手动删除容器运行后不需要的组件,然后重新构建一个新镜像。这种方法理论上是可行的,但是容易出错,而且效果也不是特别明显。主要是不能和官方的镜像实时同步。 多阶段构建 Docker 在17.05 版本起提供了多阶段构建的功能来解决这个问题,这种方法是通过丢弃中间层来实现的,并通过中间层来提供有关如何创建最终镜像及其内容信息来完成的,只需要保留容器化应用所需的组件即可。在更上层的实现如下所示: 以一些镜像作为构建的基础 和平常一样运行命令来构造你的应用 将所需的制品复制到另外一个单独的镜像 Distroless 在严重依赖容器化技术,尤其是 Docker 之后,谷歌早就意识到了使用臃肿镜像的弊端。所以他们提供了自己的方法来解决这个问题,即 distroless 镜像。与典型的Linux 基础镜像(绑定了很多软件)不同,在 distroless 上对你的应用进行 docker化,最终的镜像只包含应用及其运行时的依赖项

harbor双主架构同步镜像出错

纵然是瞬间 提交于 2020-09-28 18:08:22
1.harbor双主架构同步镜像失败 错误信息如下: 2020-08-26T07:46:58Z [INFO] initialization completed: repository: library/alpine, tags: [latest], source registry: URL- http://192.168.126.137 insecure-true, destination registry: URL- http://192.168.126.134 insecure-true 2020-08-26T07:46:59Z [ERROR] [job_logger.go:81]: failed to get project library from source registry: Get http://192.168.126.137/api/projects?name=library : dial tcp 192.168.126.137:80: getsockopt: no route to host 原因:怀疑是防火墙原因导致 解决方案: 1)停止dockers服务 systemctl stop docker 2)开始刷新iptables规则 iptables --flush iptables -tnat --flush 3)然后再启动服务 systemctl

容器技术之Docker基础入门

蓝咒 提交于 2020-08-18 04:28:18
  前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考 https://www.cnblogs.com/qiuhom-1874/p/12904188.html ;今天这篇随笔主要是想把docker的相关的基础知识梳理一下;   一、docker和LXC   首先我们来说一下docker和传统LXC容器有什么不同。传统LXC是将内核的资源用名称空间的方式将其不同容器的资源,虚拟成多份;使得每个容器间的资源相互隔离;在前边我们也提到过LXC只是容器的一种客户端工具;真正实现容器的是内核功能;而docker和LXC没有本质的不同,都是容器的客户端工具;LXC是使用内核的功能将不同容器间的资源相互隔离,而docker是LXC上的另一种封装;LXC在创建容器时,依赖一个模板,而docker创建容器时,依赖镜像;   从上面的图可看出,LXC容器里跑了很多进程,而docker是一个容器跑一个进程,以及该进程的子进程;LXC更像是系统级容器,而docker更像是进程级容器或者说应用程序级容器;   在docker容器里通常只会有一个进程和该进程的子进程,通常该进程的进程编号为1,这也就说明了如果docker容器里进程编号为1的进程宕了,那么该容器也就随之宕掉;docker的镜像是采用的一种“分层构建,联合挂载”的方式实现

.net core容器添加时区和libgdi+和下载加速

六眼飞鱼酱① 提交于 2020-08-17 23:55:53
国内.net core镜像下载加速 比如对于mcr.microsoft.com/dotnet/core/aspnet:3.1,下载是走的azure全球cdn,国内访问很慢。 国内访问可以把mcr.microsoft.com改为mcr.azk8s.cn 如docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1改为docker pull mcr.azk8s.cn/dotnet/core/aspnet:3.1速度就会快上很多 修改时区和安装libgdi+ 根据基础镜像不同添加的命令也不同 对于alpine,比如mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine是以alpine为基础镜像的,alpine是最小系统镜像,所以用这个做基础镜像能将镜像整体大小控制的得很小。 alpine的包管理器是apk,安装软件命令是apk add RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" repositories \ && apk --no-cache add tzdata zeromq \ && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

总结:Docker

核能气质少年 提交于 2020-08-15 21:31:14
基础环境要求 要求系统版本不低于 CentOS Linux release 7.4.1708 (Core) 检查了下,满足的机器为transfer的机器:10.62.253.69,暂时使用这台机器操作。 登录镜像仓库 docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub 拉取需要的基础镜像 docker pull docker-registry.qiyi.virtual/docker/openjdk:11-jdk-slim 生成镜像文件 Dockerfile案例: FROM docker-registry.qiyi.virtual/docker/openjdk:8u212-jdk-alpine MAINTAINER weiwei WORKDIR /data/weiwei/firstDocker #指定工作目录,CMD命令默认就是在这个目录下找要执行的文件的 ADD ./hubble-biz-host-2.2.3-001-SNAPSHOT.jar /data/weiwei/firstDocker #将要执行的文件拷贝到这个目录下 CMD ["java","-jar","hubble-biz

Dockerfile实践小提示

瘦欲@ 提交于 2020-08-15 07:53:52
https://mengz.me/posts/dockerfile-practies-tips/ 在进行应用容器化的实践中,我们可以使用多种方式来创建容器镜像,而使用 Dockerfile 是我们最常用的方式。 而且在实现CI/CD Pipeline的过程中,使用Dockerfile来构建应用容器也是必须的。 本文不具体介绍Dockerfile的指令和写法,仅仅是在实践中积累的一些写好一个Dockerfile的小提示,体现在一下几个方面: 减少构建时间 减小镜像大小 镜像可维护性 重复构建一致性 安全性 <!-- more --> 减小构建时间 首先来看看下面这个Dockerfile FROM ubuntu:18.04 COPY . /app RUN apt-get update RUN apt-get -y install ssh vim openjdk-8-jdk CMD [“java”,”-jar”,”/app/target/app.jar”] 要减小构建的时间,那我们可以例如Docker构建的缓存特性,尽量保留不经常改变的层,而在Dockerfile的指令中, COPY 和 RUN 都会产生新的层,而且缓存的有效是与命令的顺序有关系的。 在上面的Dockerfile中, COPY . /app 在 RUN apt-get ... 之前,而COPY是经常改变的部分