zoukankan      html  css  js  c++  java
  • 制作docker基础镜像

    1.使用reposync将base镜像库同步到本地

    yum -y install yum-utils createrepo
    mkdir -p /data/centos7
    find /etc/yum.repos.d/[!.]* -exec mv {} {}.bak ;
    cat << EOF > /etc/yum.repos.d/sync.repo
    [base]
    name=aliyun-centos7
    enabled=1
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
    gpgcheck=0
    EOF
    yum clean all
    nohup reposync --newest-only --repoid=base -p /data/centos7/ >/dev/null 2>&1 &
    createrepo /data/centos7/base -o /data/centos7/base
    wget https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 -P /data/centos7
    #备注:reposync命令可定期执行以保证本地源是最新的。

    2.安装docker

    wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install -y docker-ce
    mkdir -p /etc/docker
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    systemctl daemon-reload && systemctl enable docker && systemctl restart docker
    docker version

    3.制作scratch空镜像

    tar cf scratch.tar --files-from /dev/null
    docker import scratch.tar scratch
    或者
    docker rmi scratch
    tar cv --files-from /dev/null | docker import - scratch
    #备注:减号是标准输出,将管道前面命令的执行结果放入减号位置。

    4.在centos7.5操作系统的命令行中制作centos7.5的根目录并打包

    mkdir /root/vroot
    yum -y install --installroot=/root/vroot bash yum coreutils
    chroot /root/vroot/
    cp /etc/skel/.[!.]* /root/
    ls -a /root
    exit
    chroot /root/vroot/
    exit
    tar -cJf centos-7-docker.tar.xz -C vroot ./

    5.制作centos7.5的docker镜像

    mkdir /root/mydocker
    mv centos-7-docker.tar.xz /root/mydocker/
    cd /root/mydocker/
    echo 'FROM scratch
    ADD centos-7-docker.tar.xz /

    LABEL org.label-schema.schema-version = "1.0"
          org.label-schema.name="CentOS Base Image"
          org.label-schema.vendor="CentOS"
          org.label-schema.license="GPLv2"
          org.label-schema.build-date="20190716"

    CMD ["/bin/bash"]'  >  Dockerfile
    docker build -t centos:latest .
    docker images centos
    docker history centos

    6.运行刚制作的centos镜像并将容器中的更改备份出来

    docker run -it centos
    ifconfig
    yum provides ifconfig
    yum -y install net-tools
    ifconfig
    pstree
    yum provides pstree
    yum -y install psmisc
    pstree -p
    ls /
    exit
    docker container ls -a
    docker save centos -o /root/centos.tar
    tar -tvf /root/centos.tar
    #备注:docker save导出的文件,其实就是一个普通的压缩文件,
    这个压缩文件中包含了镜像的所有镜像层,以及包含镜像基本信息的Manifest文件。
    在Manifest文件中,包含了所有镜像层的散列值,可以通过这些特征值来检查镜像层文件是否完整且正确。

    7.启动容器并退出容器的正确做法

    docker ps -a
    docker start ee6286a3d32f
    docker attach ee6286a3d32f
    ctrl+p+q
    docker ps

  • 相关阅读:
    POJ 1948 Triangular Pastures
    2018ACM/ICPC 青岛现场赛 E题 Plants vs. Zombies
    三大博弈
    ACM-ICPC 2018年北京网络赛 D-80 days
    hdu 2062 Subset sequence
    转-利用 Python 练习数据挖掘
    内联函数
    C++中冒号(:)和双冒号(::)的用法
    理性,感性和爱
    修改IE8搜索框为指定搜索引擎,如CSDN、百度知道等
  • 原文地址:https://www.cnblogs.com/jipinglong/p/11223239.html
Copyright © 2011-2022 走看看