Docker中安装Centos7操作系统
时间:2022-07-22
本文章向大家介绍Docker中安装Centos7操作系统,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Docker中安装Centos7操作系统
如果还没安装Docker请移步到:
我的服务器版本
[root@shendu ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Experimental: false
[root@shendu ~]#
[root@shendu ~]# uname -a
Linux shendu 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@shendu ~]#
[root@shendu ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@shendu ~]#
说明:
鉴于国内网络问题,拉取Docker镜像十分缓慢,在安装之前需要先设置成国内镜像,可以加速。
一、设置镜像加速器
我使用的是网易的镜像地址:http://hub-mirror.c.163.com
网易云镜像官方地址 https://c.163yun.com/hub#/library/repository/info?repoId=1055
- 在centos7下配置:
[root@shendu ~]#
[root@shendu ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
[root@shendu ~]#
- 然后执行如下两个命令才会生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 创建Dockerfile文件:(我直接在root用户目录下创建了)
- 文件内容:
FROM hub.c.163.com/netease_comb/centos:7
MAINTAINER netease
# 更新yum源
RUN yum makecache fast && yum -y update glibc
# 安装常用软件
RUN yum install -y openssh-server vim tar wget curl rsync bzip2 iptables tcpdump less telnet net-tools lsof
# 初始化ssh登陆
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config
RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
RUN yum clean all
# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
二、获取Centos7镜像
- 在
Dockerfile
的文件夹下运行:docker build -t centos7-my .
-
centos7-my
是生成的镜像名称 - 如果成功了,执行
docker images
就会看到下面的结果
三、启动容器
- 命令:
docker run -itd --name os1 -p 10000:22 87bd98509c5e /bin/bash
-
--name os1
: 启动容器的容器名称 -
87bd98509c5e
: 镜像id -
-p 10000:22
: 端口映射,将容器22
端口映射到宿主机10000
端口,供后续ssh远程登录
-
四、开启ssh链接
1、进入os1容器:
命令:docker exec -it os1 bash
[root@shendu ~]#
[root@shendu ~]# docker exec -it os1 bash
[root@d6898c947c4b /]#
[root@d6898c947c4b /]#
2、启动ssh:
- 先执行
[root@d6898c947c4b /]# /usr/sbin/sshd -D
- 会出现如下结果:
- 然后执行(回车两次,如果 出现警告可以不用管)
[root@d6898c947c4b /]# /usr/sbin/sshd -D &
- 会出现如下结果:
3、查看是否已经启动成功
使用命令:netstat -ntpl |grep 22
或者 lsof -i:22
[root@d6898c947c4b /]#
[root@d6898c947c4b /]# netstat -ntpl |grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 44/sshd
tcp6 0 0 :::22 :::* LISTEN 44/sshd
[root@d6898c947c4b /]#
[root@d6898c947c4b /]#
[root@d6898c947c4b /]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 44 root 3u IPv4 32153435 0t0 TCP *:ssh (LISTEN)
sshd 44 root 4u IPv6 32153437 0t0 TCP *:ssh (LISTEN)
[root@d6898c947c4b /]#
[root@d6898c947c4b /]#
[root@d6898c947c4b /]#
如果出现以上结果,就算成功了。
五、修改root密码
[root@d6898c947c4b /]#
[root@d6898c947c4b /]# passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@d6898c947c4b /]#
六、进行ssh远程登录测试
- 1、我使用的是CRT连接的
- 连接成功之后
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 数据结构题集(严书)图 常见习题代码
- PAT (Basic Level) Practice (中文)1036 跟奥巴马一起编程 (15 分)
- PAT (Advanced Level) Practice 1024 Palindromic Number (25 分)
- Flink 连接 hive 解决 java.net.UnknownHostException
- PAT (Advanced Level) Practice 1147 Heaps (30 分)
- Java自动化测试(app自动化环境搭建 31)
- PAT (Basic Level) Practice (中文)1038 统计同成绩学生 (20 分)
- 数据结构题集(严书)串 常见习题代码
- PAT (Basic Level) Practice (中文)1040 有几个PAT (25 分)
- 201909-4ccf计算机职业资格认证考试 第四题 推荐系统
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
- PAT (Basic Level) Practice (中文)1042 字符统计 (20 分)
- Pytorch 中的 5 个非常有用的张量操作
- k-近邻算法实现数字识别
- 【Linux_Shell 脚本编程学习笔记五、Oracle JDK1.8 安装shell 脚本】