基于 Docker 的几种常用 CentOS7 镜像

摘要:
https://blog.csdn.net/github_39577257/article/details/107180891#1检查Dockersystemctlstatusdockerrpmqa|grep-E“docker”##1.1如果重新安装,可以卸载旧版本的Dockeryumremoveddocker-erm-rf/var/lib/docker##1.2更新系统包
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

免责声明:文章转载自《基于 Docker 的几种常用 CentOS7 镜像》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇应用系统功能分析设计方法java 注解结合 spring aop 实现日志traceId唯一标识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

针对IE浏览器里面CSS的Bug解决方法

IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况。如外边距设置为10px, 而左侧则呈现出20px,解决它的方法是在浮动元素上加上display:inline;的样式,这样就可避免双倍边距bug。 3像素问题及解决办法 当使用float浮动容器后,在IE6下会产生3px的...

android wifi断开原因分析

最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种:1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT03-16 09:22:12.440 D/WifiMonitor( 924): Event [IFNAME=wlan0 CTRL-EVENT-DISCONNECTED bssid=08:cc:68:9e:ac...

Oracle 12c 容器讲解

Oracle 12c一个重要新特性是插接式数据库。 插接式数据库由一个使用 CDB(Container Database)选项创建的容器数据库和一个或多个 PDB(Pluggable Database)组成,CDB 作为容器容纳 PDB,而 PDB 彼此隔离,就像一个独立的数据库般在 CDB 中存在。PDB 是一组 Schema 的集合,在 CDB 中作为...

无限极分类装入Treeview

Declare @Id Int Set @Id = 0; ---在此修改父节点 With RootNodeCTE(NodeId,ParentId,[text],orderid) As ( Select NodeId,ParentId,[text],orderid From S_Tree Where ParentId In (@Id) Union All S...

Docker学习笔记之为容器配置网络

0x00 概述 在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫。功能丰富和强大,并不代表使用复杂,在 Docker 的封装下,我们依然可以通过命令和参数轻松的为容器制定不同的网络方案。在这一节中,我们就来了解 Docker 的网络部分。 0x01 容器网络 在之前介绍 Docker...

Centos 安装 Harbor

本文安装环境是 Dcoker version Client: Docker Engine -Community Version: 19.03.6API version: 1.40Go version: go1.12.16Git commit: 369ce74a3c Built:...