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

  • 相关阅读:
    topcoder srm 681 div1
    topcoder srm 683 div1
    topcoder srm 684 div1
    topcoder srm 715 div1
    topcoder srm 685 div1
    topcoder srm 687 div1
    topcoder srm 688 div1
    topcoder srm 689 div1
    topcoder srm 686 div1
    topcoder srm 690 div1 -3
  • 原文地址:https://www.cnblogs.com/jipinglong/p/11223239.html
Copyright © 2011-2022 走看看