• 基于 Docker 的几种常用 CentOS7 镜像


    https://blog.csdn.net/github_39577257/article/details/107180891

    # 1 查看系统中是否已经安装了 Docker
    systemctl status docker
    rpm -qa | grep -E "docker"
    ## 1.1 如果重新安装可以先卸载旧版本 Docker
    yum remove docker-ce
    rm -rf /var/lib/docker
    ## 1.2 更新系统包
    yum -y update

    # 2 访问如下网站,下载 Docker RPM 包
    # https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
    # 例如下
    wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.3.ce-3.el7.x86_64.rpm

    # 3 安装
    yum install docker-ce-18.06.3.ce-3.el7.x86_64.rpm

    # 4 启动
    systemctl start docker
    ## 查看信息
    docker info

    systemctl daemon-reload

    systemctl restart docker

    # 查看启动状态

    systemctl status docker

    制作中文环境基础版Centos7镜像

    3.1 Dockerfile

    Dockerfile 形式,将下面配置内容放到环境中的某个目录下 的Dockerfile 文件中。最后执行构建命令 docker build -t yore/centos7_v1 . 后面的 . 表示当前路径。主要拉取一个 centos 7 最新版本,并安装和设置中文语言环境。

    FROM centos:7.8.2003

    ENV LANG=zh_CN.UTF-8
    LANGUAGE=zh_CN:zh
    LC_ALL=zh_CN.UTF-8

    # Install tools
    RUN yum update -y &&
    yum reinstall -y glibc-common &&
    yum install -y telnet net-tools &&
    yum clean all &&
    rm -rf /tmp/* rm -rf /var/cache/yum/* &&
    localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 &&
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    # Define default command.
    CMD ["bash"]
    # 查看镜像。会看到两个,一个是原始镜像,一个是自定义配置后的镜像

    docker images

    # 1 运行。下面会对本容器做进一步的修改设置
    # -d 后台运行容器
    # -p 指定端口映射,格式为:主机(宿主)端口:容器端口
    # --name="yore_centos7" 为容器指定一个名称
    # -h "hostname" 指定容器的hostname;
    # -m 设置容器使用内存最大值;
    # --volume、-v 绑定一个卷
    # --privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities
    # --cap-add=[], 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
    docker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it
    -p 30022:22 -p 30080:80 -h "bigdata"
    --name="centos7_base" -d yore/centos7_v1:latest /usr/sbin/init

    # 2 启停容器
    ## 2.1 关闭容器
    docker stop $CONTAINER_ID
    ## 2.2 启动某个容器
    docker start $CONTAINER_ID
    ## 2.3 移除容器
    docker rm -f $CONTAINER_ID

    # 3 删除镜像
    ## image rm 等价于 rmi
    docker image rm $IMAGE_ID
    ## 如果有多个相同的 IMAGE ID 的删除
    docker rmi $REPOSITORY:$TAG

    # 4 进入容器
    docker exec -it $CONTAINER_ID /bin/bash
    ## 查看当前容器中 Centos7 版本
    cat /etc/redhat-release

    在容器中安装配置一些基础服务

    # 1 为了更好的编辑文件可以安装 vim
    yum install -y vim

    # 2 为了查看端口信息更方便可以安装 lsof
    yum install -y lsof

    # 3 安装 wget
    yum install -y wget

    # 4 安装 tree
    yum install -y tree

    # 5 python 工具
    yum install -y python-devel

    # 6 安装编译 C 的环境
    yum install -y gcc gcc-c++
    yum install -y zlib
    yum install -y zlib-devel
    yum install -y tcl build-essential tk gettext

    SSH

    # 1 yum 安装 spenssl 服务
    yum -y install passwd openssl openssh-server openssh-clients
    mkdir /var/run/sshd/

    # 2 修改配置
    vim /etc/ssh/sshd_config +39
    ## 大概在 38 - 45 行之间,修改或添加如下三个配置
    PermitRootLogin yes
    RSAAuthentication yes
    PubkeyAuthentication yes

    # 3 sshd 服务的启停
    ## 3.1 启动
    systemctl start sshd.service
    ## 3.2 查看 sshd 服务状态
    systemctl status sshd
    ## 3.3 停止
    systemctl start sshd.service

    # 4 设置为开机自启
    systemctl enable sshd.service

    # 【可跳过】5 生成ssh的密钥和公钥
    # ssh-keygen -t rsa

    # 6 查看 SSH 服务
    lsof -i:22

    # 7 设置 root 密码(2020)
    passwd

    # 8 通过 ssh 访问容器
    ssh root@bigdata

    修改容器配置

    # 1 停止当前运行的容器
    docker stop $CONTAINER_ID

    # 2 commit 该 docker 容器
    docker commit $CONTAINER_ID new_image:tag

    # 3 查看当前的镜像库
    docker images

    # 4 用生成的新镜像重新起一个容器
    docker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it
    -p 30022:22 -p 30080:80 -p 33306:3306
    --name="yore_centos7_v2" -h "bigdata01" -d yore/centos7_v2:latest /usr/sbin/init

    制作为本地镜像

    # 1 停止当前运行的容器

    docker stop $CONTAINER_ID

    # 2 commit 该 docker 容器

    docker commit $CONTAINER_ID centos7_base:v1

    # 3 查看当前的镜像库 docker images

  • 相关阅读:
    我有推特
    几大浏览器最新的javascript引擎
    有关表达式树
    路由跟踪命令
    利用httpwebrequest解析网站的文本文件
    技术的学习及一些总结
    nhibernate使用记录
    Introducing “Razor” – a new view engine for ASP.NET
    android属性设置
    android连续按两次返回退出程序
  • 原文地址:https://www.cnblogs.com/songyuejie/p/15251746.html
Copyright © 2020-2023  润新知