Docker自制CentOS镜像
系统环境:CentOS 7.3
将yum源切换到阿里源
可以直接写成一个脚本
#!/bin/sh
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1. 安装Docker
[root@localhost ~]# yum -y install docker-engine
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
2. 安装制作CentOS镜像的工具
[root@localhost ~]# yum -y install febootstrap
ps: CentOS7中的yum源没有febootstrap包,可以在CentOS6中使用 "yumdownloader febootstrap"命令将febootstrap下载到本地,之后放在7上进行安装
3. 制作CentOS镜像文件centos6-image目录
[root@localhost ~]# febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/
PS:-i 安装package, centos6 操作系统版本,centos6-doc安装目录,最后是源地址
4. 制作Docker镜像,镜像名字是centos6-base
[root@localhost ~]# cd centos6-image && tar -c .|docker import - centos6-base
制作可以ssh登陆的Docker镜像,名字是centos6-ssh
1.创建一个Dockerfile文件
#Dockerfile
FROM centos6-base
RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chown root.root /root && chmod /root/.ssh
EXPOSE
RUN echo 'root:123.com' | chpasswd
ENV LANG en_US.UTF-
ENV LC_ALL en_US.UTF-
CMD /usr/sbin/sshd -D
#End
Dockerfile
[root@localhost ~]# docker build -t centos6-ssh .
2. 创建容器
[root@localhost ~]# docker run -itd -p : centos6-ssh
3. ssh登陆容器
[root@localhost ~]# ssh root@127.0.0.1 -p
Docker自制CentOS镜像的更多相关文章
- 关于Docker官方CentOS镜像无法启动mysqld的总结
很多童鞋反映,在Docker官方CentOS镜像中安装了Mysql server后,无法正常启动. 无法正常启动表现为两种情况: 1> 初始完数据库后,mysqld启动报错 2> syst ...
- docker 启动 centos 镜像,容器会自动退出
docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1. ...
- Docker的centos镜像内无法使用systemctl命令的解决办法
在Docker官方的centos镜像内无法使用systemctl命令的解决办法, 使用该命令docker报错 Failed to get D-Bus connection: Operation not ...
- docker 自制CentOS 6-lnp镜像
环境准备 1台centos 6.5镜像虚拟机 febootstrap.docker febootstrap 安装 yum install -y yum-priorities && r ...
- Docker 启动 Centos 镜像 提示"Error response from daemon: No command specified"
奇怪的是当我执行启动其他的镜像的时候并没有报错,找了半天资料发现在启动centos这个镜像的时候需要在docker命令后面指定命令参数“/bin/bash”
- docker 自制alpine-lnp镜像
简单粗暴点吧 jenkins 镜像下载:docker pull jenkins:alpine dockfile 原地址:https://gist.github.com/phith0n/373cc078 ...
- 2.docker下centos镜像
1.下载并运行 # 交互模式下载并运行centos容器 $ docker run -it centos:latest /bin/bash 1.1 配置centos的环境别名 $ vi /etc/bas ...
- Docker安装CentOS
系统环境: 腾讯云公共镜像 CoreOS 7.1 X64 #docker 下载centos镜像docker pull centos #下载centos所有的镜像docker pull ...
- CentOS7安装Docker,运行Nginx镜像、Centos镜像
摘要 总体思路:yum命令直接安装Docker,下载想要的镜像并启动 1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum instal ...
随机推荐
- Typescript 发布到npm
https://blog.csdn.net/yiershan1314/article/details/79999726 https://cloud.tencent.com/developer/arti ...
- 3.sparkSQL整合Hive
spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据.从Spark 1.4.0开始,Spark SQL只需简单的配置 ...
- flask实现子域名
什么是子域名? 子域名,类似于xxx.douban.com的形式,如book.douban.com,music.douban.com,movie.douban.com等 用flask怎么实现子域名? ...
- 比较ASP.NET和ASP.NET Core[经典 Asp.Net v和 Asp.Net Core (Asp.Net Core MVC)]
ASP.NET Core是.与.Net Core FrameWork一起发布的ASP.NET 新版本,最初被称为ASP.NET vNext,有一系列的命名变化,ASP.NET 5.0,ASP.NET ...
- python 中的re模块,正则表达式
一.re模块 re模块中常用的方法. match: 默认从字符串开头开始匹配,re.match('fun', 'funny') 可以匹配出来 'fun' match(pattern, string, ...
- Vue向后端请求课程展示
1.Vue结构 App.vue <template> <div id="app"> <router-link to="/index" ...
- 便捷的ajax请求
为什么要做这个呢?如果后端给的数据不单有JSON字符串,还有对象呢?这个时候我们就要每个都处理(JSON.parse).万一后端又改了,所有都是对象呢?如此一来我们就需要对我们的ajax进行封装. 这 ...
- node-cookie-parserDemo
let express = require('express'); let app = new express(); let cookieParser = require('cookie-parser ...
- Laravel 获取 Route Parameters (路由参数) 的 5 种方法
Laravel 获取路由参数的方式有很多,并且有个小坑,汇总如下. 假设我们设置了一个路由参数: 现在我们访问 http://test.dev/1/2 在 TestController ...
- java内存模型(转)
前提知识: Java内存模型(JMM)是一个概念模型,底层是计算机的寄存器.缓存内存.主内存和CPU等. 多处理器环境下,共享数据的交互硬件设备之间的关系: JMM: 从以上两张图中,谈一谈以下几个 ...