Docker build-容器构建加速攻略

容器构建时需要下载多种软件,往往这是非常耗时间的。hub.docker.com本来就慢,尤其是遇到存放在gcr.io/aws等上面的模块就挂了,pip安装python模块是也较慢,conda的下载更是如蜗牛。

加快容器构建时的下载速度,有多种方法:

1、放在“外面的服务器”构建,然后传送到aliyun等镜像,下载速度就会快很多很多。

2、添加proxy和pip、conda的镜像。如下是给jupyterhub环境下使用构建的一个singleuser镜像。

# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
FROM jupyter/all-spark-notebook:5811dcb711ba

LABEL maintainer="Databook Project,https://github.com/databooks<openthings@163.com>"

USER root

# ====================================================================
# Add proxy, using --build-arg "HTTP_PROXY=http://192.168.199.99:9999"

ENV HTTP_PROXY ${HTTP_PROXY}
ENV HTTPS_PROXY ${HTTP_PROXY}
ENV http_proxy ${HTTP_PROXY}
ENV https_proxy ${HTTP_PROXY}

#Add conda install mirror:

RUN echo $http_proxy && \
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ && \
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ && \
    conda config --set show_channel_urls yes

#Add pip install mirror:

RUN echo "[global] \
index-url = http://pypi.tuna.tsinghua/simple \
trusted-host = \
    pypi.tuna.tsinghua \
timeout = 120 \
" > /etc/pip.conf
# ====================================================================

# ====================================================================
USER $NB_UID

RUN pip install --upgrade pip 
RUN pip install bs4 && \
    pip install lxml && \
    pip install ipyleaflet && \
    pip install py4j && \
    pip install pyspark && \
    pip install mlflow && \
    pip install airflow && \
    pip install tushare

RUN conda update -n base conda
RUN conda install -y -c conda-forge nodejs=8.10.0 && \
    conda install -y -c conda-forge tensorflow=1.8.0 && \
    jupyter labextension install jupyter-leaflet

# ====================================================================
ENV HTTP_PROXY ""
ENV HTTPS_PROXY ""
ENV http_proxy ""
ENV https_proxy ""
# ====================================================================

注意:

  • 注意要加到docker里面,在宿主机设置没有用的,因为docker build是在独立的容器中运行的。
  • build时使用docker build --build-arg "HTTP_PROXY=http://192.168.199.99:9999"将proxy参数传进去,结束时将http_proxy等参数清除。这样可以避免将proxy信息写入镜像。注意改成自己的服务地址。
  • 这里使用了清华的pip和conda镜像,也可以换成其它的。参考下面的信息:

更多的参考:Databook-数据之书

转载于:https://my.oschina.net/u/2306127/blog/1914445

根据提供的命令`docker build -t nacos-docker`,这是一个用于构建Docker镜像的命令。`-t`参数用于标记镜像,`nacos-docker`是镜像名称。 Docker是一个开源的容器化平台,可以将应用程序和服务放入容器中进行部署,而容器又可以在不同的环境中运行,从而实现了跨平台和快速部署。Docker镜像是一个轻量级、独立的可执行软件程序包,其中包含了运行应用程序所需的所有文件、依赖项和配置。Docker镜像可以在不同的Docker容器中运行,并且可以在Docker Hub等容器仓库中共享和获取。 下面是构建一个Docker镜像的步骤: 1. 编写Dockerfile文件,该文件描述了如何构建Docker镜像,包括基础镜像、应用程序代码、依赖项等信息。 2. 执行`docker build`命令构建镜像。在构建过程中,Docker会执行Dockerfile文件中的每个命令,生成一个新的镜像。 3. 使用`docker run`命令启动容器,并运行应用程序。 下面是构建nacos-docker镜像的步骤: 1. 创建一个名为nacos-docker的文件夹,并在该文件夹中创建一个Dockerfile文件。 2. 在Dockerfile中定义基础镜像和安装nacos的命令。例如: ```shell FROM openjdk:8-jdk-alpine RUN mkdir /nacos && cd /nacos \ && wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-1.4.2.tar.gz ``` 3. 执行`docker build -t nacos-docker .`命令构建镜像,其中`.`表示Dockerfile所在的当前目录。Docker会执行Dockerfile中的每个命令,并生成一个新的名为nacos-docker的镜像。 4. 使用`docker run`命令启动容器,并运行nacos应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值