目录
- 1 安装 Docker
- 2 配置国内镜像源
- 3 制作中文环境基础版Centos7镜像
- 3.1 Dockerfile
- 3.2 启动容器
- 3.3 在容器中安装配置一些基础服务
- 3.4 SSH
- 3.5 【可选】修改容器配置
- 3.5.1 通过容器的配置文件
- 3.5.2 通过 docker commit 方式
- 3.6 制作为本地镜像
- 3.7 镜像提交到阿里云镜像库
- 3.8 使用提交到阿里云的镜像
- 4 开发环境版 Centos7 镜像
- 4.1 JDK
- 4.2 Git
- 4.3 Maven
- 4.4 Nginx
- 4.5 Node.js
- 4.6 保存为本地镜像
- 4.7 镜像提交到阿里云镜像库
- 5 带 MySQL 版Centos7镜像
- 5.1 设置 Docker 网络
- 5.2 启动容器
- 5.3 MySQL
- 5.4 保存为本地镜像
- 5.5 镜像提交到阿里云镜像库
中文环境基础版 Centos7 镜像 。在 CentOS 7 的镜像基础上 , 又添加了 vim、lsof、wget、tree、python-devel、c 编译环境、ssh服务 。系统 root 密码为 2020:
sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1开发环境版 Centos7 镜像 。在 中文环境基础版镜像基础上 , 又添加了 JDK8、Git、Maven、Nginx、Node.js服务 。系统 root 密码为 2020
sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1中文环境基础版镜像 。在 开发环境版 Centos7 镜像基础上添加了 MySQL 5.7 服务 。系统 root 密码为 2020 , mysql 的 root 用户密码为 123456
sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1sudo docker pull registry-internal.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1

文章插图
1 安装 Docker# 1 查看系统中是否已经安装了 Dockersystemctl status dockerrpm -qa | grep -E "docker"## 1.1 如果重新安装可以先卸载旧版本 Dockeryum remove docker-cerm -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
2 配置国内镜像源【基于Docker的几种常用CentOS7镜像小结】这里配置为阿里的镜像 。访问阿里云官网 https://www.aliyun.com/ 登陆账号 , 进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器 , 复制自己的专属加速器地址 。
vim /etc/docker/daemon.json# 添加自己的镜像地址 , 保存退出{"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]}重新加载文件重启 docker
systemctl daemon-reloadsystemctl restart docker# 查看启动状态systemctl status docker
3 制作中文环境基础版Centos7镜像
3.1 DockerfileDockerfile 形式 , 将下面配置内容放到环境中的某个目录下 的Dockerfile 文件中 。最后执行构建命令
docker build -t yore/centos7_v1 . 后面的 . 表示当前路径 。主要拉取一个 centos 7 最新版本 , 并安装和设置中文语言环境 。FROM centos:7.8.2003ENV LANG=zh_CN.UTF-8 \LANGUAGE=zh_CN:zh \LC_ALL=zh_CN.UTF-8# Install toolsRUN 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
3.2 启动容器# 1 运行 。下面会对本容器做进一步的修改设置#-d后台运行容器#-p指定端口映射 , 格式为:主机(宿主)端口:容器端口#--name="yore_centos7"为容器指定一个名称#-h "hostname"指定容器的hostname;#-m设置容器使用内存最大值;#--volume、-v绑定一个卷#--privileged=false指定容器是否为特权容器 , 特权容器拥有所有的capabilities#--cap-add=[] , 添加权限 , 权限清单详见:http://linux.die.net/man/7/capabilitiesdocker 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 等价于 rmidocker image rm $IMAGE_ID## 如果有多个相同的 IMAGE ID 的删除docker rmi $REPOSITORY:$TAG# 4 进入容器docker exec -it $CONTAINER_ID /bin/bash## 查看当前容器中 Centos7 版本cat /etc/redhat-release
3.3 在容器中安装配置一些基础服务# 1 为了更好的编辑文件可以安装 vimyum install -y vim# 2 为了查看端口信息更方便可以安装 lsofyum install -y lsof# 3 安装 wgetyum install -y wget# 4 安装 treeyum install -y tree# 5 python 工具yum install -y python-devel# 6 安装编译 C 的环境yum install -y gcc gcc-c++yum install -y zlibyum install -y zlib-develyum install -y tclbuild-essential tk gettext为了用户登录容器内的 Centos 配置的环境变量都生效 , 进行如下配置
vim ~/.bashrc# 在最后添加source /etc/profile
3.4 SSH# 1 yum 安装 spenssl 服务yum -y install passwd openssl openssh-serveropenssh-clientsmkdir/var/run/sshd/# 2 修改配置vim /etc/ssh/sshd_config +39##大概在38 - 45 行之间 , 修改或添加如下三个配置PermitRootLogin yesRSAAuthentication yesPubkeyAuthentication 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
3.5 【可选】修改容器配置当我们的容器运行过程中需要修改一些配置信息 , 并生效到容器时 , 可以按照如下两种方式操作 , 第一种方法操作简单 , 但是需要重启整个 Docker 服务 , 对应某些配置可能还无法生效;第二种方法是推荐的 , 直接在已有的容器下生成一个新的镜像 , 以新镜像重启容器 , 不会对已有容器产生任何影响 。
3.5.1 通过容器的配置文件# 其中 hash_of_the_container 可以通过查看 CONTAINER ID 获取vim /var/lib/docker/containers/${hash_of_the_container}/hostconfig.json打开后这个是一个压缩后的 json 文件 , 格式化可以看到
PortBindings , 其中 HostPort 对应的是映射到宿主机的端口 , 22/tcp 对应的是容器内部的 22 端口 , 修改完后重启容器 systemctl restart docker , 然后将容器启动 docker start $CONTAINER_ID , 缺点就是每次改动Docker 服务要重启 , 容器也需要重启 。"NetworkMode": "default","PortBindings": {"22/tcp": [{ "HostIp": "bigdata01", "HostPort": "30022"}],"80/tcp": [{ "HostIp": "bigdata01", "HostPort": "30080"}],"3306/tcp": [{ "HostIp": "bigdata01", "HostPort": "33306"}]}
3.5.2 通过 docker commit 方式推荐方式 。
docker commit 把一个容器的文件改动和配置信息 commit 到一个新的镜像 。这个在测试的时候会非常有用 , 把容器所有的文件改动和配置信息导入成一个新的docker镜像 , 然后用这个新的镜像重起一个容器 , 这对之前的容器不会有任何影响 。# 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
3.6 制作为本地镜像# 1 停止当前运行的容器docker stop $CONTAINER_ID# 2 commit 该 docker 容器docker commit $CONTAINER_ID centos7_base:v1# 3 查看当前的镜像库docker images
3.7 镜像提交到阿里云镜像库
- 访问阿里云官网: https://www.aliyun.com/
- 登陆案例云账号
- 依次进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务
- 命名空间:设置后不可修改 , 例如 yore
- 镜像仓库:命名空间选择上面创建的 yore , 创建镜像仓库 , 根据提示填写信息(命名空间必选、仓库名必填 , 摘要必填) , 代码源可以绑定 Git变更后自动构建 , 这里选择本地仓库 , 手动创建镜像推送到仓库 。
- 访问授权:目前案例云只能通过 RAM 权限进行授权设置

文章插图
访问密码:设置镜像仓库的密码(固定、临时)

文章插图
# 查看本地已有的镜像docker images# 2 访问凭证(前面设置的访问凭证的固定密码 )sudo docker login --username=7910*****@qq.com registry.cn-shanghai.aliyuncs.com# 3 tagdocker tag $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1# 4 push到阿里云镜像docker push registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1# 5 如果前面 tag 的镜像需要删除 , 执行如下命令docker rmi $REPOSITORY:$TAG
3.8 使用提交到阿里云的镜像上一步提交成功后 , 在阿里云控制台页面可以看到如下我们提交的镜像

文章插图
本镜像基于 Centos 7.8.2003 , 主要安装了 vim、lsof、wget、tree、sshd 等服务 。注意:启动后 root 用户的默认密码为 2020 , 为了使系统更加安全 , 请先修改为更加复杂的密码 。
# 查看当前 Docker 中有的镜像sudo docker images # 拉取上传的镜像## 镜像连接可以通过 基本信息 查看 , 有公网地址、专有网络、经典网络可选sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003_v1
4 开发环境版 Centos7 镜像将开发中常用到的环境进行安装和配置
# 1 运行 。下面会对本容器做进一步的修改设置# 以 base 镜像为准 , 启动容器docker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it \-p 30022:22 -p 30080:80-h "bigdata01" \--name="centos7_dev1" -d centos7_base:v1 /usr/sbin/init# 2 进入容器docker psdocker exec -it $CONTAINER_ID /bin/bash# 3 hosts 改为 。172.17.0.3yore.node1 bigdata01
4.1 JDK# 1 下载 。如果下面链接失效 , 则需要登录Oracle的账号 , # 访问 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 jdk8wget https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1573137213_adc79b33f2d9ed27cb8b09b6adf71820# 2 解压tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local/chown root:root -R /usr/local/jdk1.8.0_231# 3 配置环境变量vim /etc/profile# 添加如下配置### set java environmentJAVA_HOME=/usr/local/jdk1.8.0_231JRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATH# 4 并加载生效:source /etc/profile# 5 为了使每次进入容器时都生效vim ~/.bashrc# 最后一行添加 , 保存source /etc/profile# 6 查看Java版本java -version
4.2 Git# 1 下载源码方式 , wget -O git-2.27.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.gz# 2 解压tar -zxf git-2.27.0.tar.gz -C /tmp/cd /tmp/git-2.27.0 # 3 检验相关依赖 , 设置安装路径./configure --prefix=/usr/local/git# 4 安装make && make install# 5 创建软连接ln -s /usr/local/git/bin/git /usr/bin/git# 6 查看版本git -v
4.3 Maven# 1 下载wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz# 2 解压tar -zxf apache-maven-3.6.3-bin.tar.gzmv apache-maven-3.6.3 /usr/local/maven3# 3 修改配置vim /usr/local/maven3/conf/settings.xml配置如下内容
# 4 配置环境变量 , vim /etc/profile# set Maven environmentexport MAVEN_HOME=/usr/local/maven3export PATH=$PATH:$MAVEN_HOME/bin# 5 生效source /etc/profile# 6 查看版本mvn -version
4.4 Nginx# 1 下载 Nginx 离线安装包 。以 x86、centos7版本为例wget http://nginx.org/packages/mainline/centos/7/x86_64/RPMS/nginx-1.17.6-1.el7.ngx.x86_64.rpm# 2 安装rpm -ivh nginx-1.17.6-1.el7.ngx.x86_64.rpm# 3 配置文件/etc/nginx# server 服务可以配置到下面路径 , 以 .conf 结尾 , 重启或使配置生效/etc/nginx/conf.d/# 4 常用命令## 4.1 启动 , 应为已经将内部 80端口映射到了宿主机的 30080 , 所以通过宿主机 ip 和 30080 端口浏览器访问systemctl start nginx## 4.2 状态systemctl status nginx## 4.3 停止systemctl stop nginx## 4.4 重启systemctl restart nginx## 4.5 配置重新生效/usr/sbin/nginx -s reload# 这里提供的镜像已停止了 Nginx 服务 , 在需要时请手动启动
4.5 Node.js# 1 下载wget https://nodejs.org/dist/v12.18.2/node-v12.18.2-linux-x64.tar.xz# 2 解压tar -xf node-v12.18.2-linux-x64.tar.xzmv node-v12.18.2-linux-x64 /usr/local/nodejs# 3 创建连接ln -s /usr/local/nodejs/bin/node /usr/bin/nodeln -s /usr/local/nodejs/bin/npm /usr/bin/npm# 4 查看版本node -vnpm -v
4.6 保存为本地镜像# 1 停止当前运行的容器docker stop $CONTAINER_ID# 2 commit 该 docker 容器docker commit $CONTAINER_ID centos7_dev:v1# 3 查看当前的镜像库docker images
4.7 镜像提交到阿里云镜像库同 3.7 镜像提交到阿里云镜像库 步骤提交到阿里云镜像库中
docker tag $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1docker push registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1本镜像基于 Centos 7 , 在中文基础版上 , 又集成了 JDK 、Git、Maven、Nginx、Node.js 服务 。注意:启动后 root 用户的默认密码为 2020 , 为了使系统更加安全 , 请先修改为更加复杂的密码 。
# 查看当前 Docker 中有的镜像sudo docker images # 拉取上传的镜像## 镜像连接可以通过 基本信息 查看 , 有公网地址、专有网络、经典网络可选sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:7.8.2003-dev_v1
5 带 MySQL 版Centos7镜像这里在开发环境版的镜像基础上安装 MySQL 数据库
5.1 设置 Docker 网络# 1 查看存在的网络(默认会创建三个)#bridge桥接网络 。每次Docker容器重启时 , 会按照顺序获取对应的IP地址 , 这个就导致重启后 IP 地址可能会改变#host主机网络 。Docker 容器的网络会附属在主机上 , 两者是互通的 。#none容器就不会分配局域网的IP[yore@VM_0_3_centos app]$ sudo docker network lsNETWORK IDNAMEDRIVERSCOPEba8077c371b9 bridgebridgelocal1be5b2b64e10 hosthostlocal77ef163ae7c4 nonenulllocal# 2 创建自定义的网络 。# sudo docker network prune# 注意:不能和已有的网段冲突sudo docker network create --subnet=172.19.0.0/16 mynetwork
5.2 启动容器# 1 运行 。下面会对本容器做进一步的修改设置# 以 centos7_dev 镜像为准 , 启动容器# network 网络方式指定为前面自定义的 mynetwork , 这样我们可以直接指定 ipdocker run --privileged=true --cap-add SYS_ADMIN -e container=docker -it \--network mynetwork --ip 172.19.0.2 -h "bigdata02" --name="dev_mysql_v1" \-p 30022:22 -p 33306:3306 \-d centos7_dev:v1 /usr/sbin/init# 2 进入容器docker psdocker exec -it $CONTAINER_ID /bin/bash# 3 【可选】hosts 改为 。也可以在 run 时指定172.19.0.2yore.node2 bigdata02
5.3 MySQLMySQL 安装详见我的 blog CDH 6.2.0 或 6.3.0 安装实战及官方文档资料链接#1.5 MySQL 内容 。
? 系统中 mysql 用户的默认密码为 mysql 。安全起见 , 在公网下请修改为密码强度更大的密码
? MySQL 默认开启了 binlog 。可以在配置文件中关闭掉 。
? 当报
error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory , 执行 yum -y install numactl.x86_64 。? MySQL 数据库管理员账号 root 的密码默认为 123456 。可以自行修改为密码强度更大的密码 。
? 默认情况下 , 远程连接:
mysql -h 宿主机ip -P 33306 -uroot -p。5.4 保存为本地镜像# 1 停止当前运行的容器# docker stop $CONTAINER_ID# 2 commit 该 docker 容器docker commit $CONTAINER_ID dev_mysql:v1# 3 查看当前的镜像库docker images
5.5 镜像提交到阿里云镜像库同 3.7 镜像提交到阿里云镜像库 步骤提交到阿里云镜像库中 。
docker tag $IMAGE_ID registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1docker push registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1本镜像基于 Centos 7 , 在开发环境版的基础上 , 又集成了 MySQL 5.7 服务 。注意:启动后 系统 root 用户的默认密码为 2020 , 为了使系统更加安全 , 请先修改为更加复杂的密码 。
# 查看当前 Docker 中有的镜像sudo docker images # 拉取上传的镜像## 镜像连接可以通过 基本信息 查看 , 有公网地址、专有网络、经典网络可选sudo docker pull registry.cn-shanghai.aliyuncs.com/yore/bigdata:dev-mysql_v1关于 docker 的安装、docker 中 mysql 镜像的使用、官方 docker mysql 镜像中文字符等可以访问我的另一篇 blog: Windows/Mac系统Docker方式安装Mysql
到此这篇关于基于Docker的几种常用CentOS7镜像小结的文章就介绍到这了,更多相关Docker常用CentOS7镜像内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
