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

[[email protected] ~]# yum -y install docker-engine
[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl enable docker

2. 安装制作CentOS镜像的工具

[[email protected] ~]# yum -y install febootstrap

ps: CentOS7中的yum源没有febootstrap包,可以在CentOS6中使用 "yumdownloader febootstrap"命令将febootstrap下载到本地,之后放在7上进行安装

3. 制作CentOS镜像文件centos6-image目录

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

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 700 /root/.ssh
EXPOSE 22
RUN echo ‘root:123.com‘ | chpasswd
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
CMD /usr/sbin/sshd -D
#End

Dockerfile

[[email protected] ~]# docker build -t centos6-ssh .

2.  创建容器

[[email protected] ~]# docker run -itd -p 33301:22 centos6-ssh

3. ssh登陆容器

[[email protected] ~]# ssh [email protected]127.0.0.1 -p 33301
时间: 2024-10-11 21:17:06

Docker自制CentOS镜像的相关文章

关于Docker官方CentOS镜像无法启动mysqld的总结

很多童鞋反映,在Docker官方CentOS镜像中安装了Mysql server后,无法正常启动. 无法正常启动表现为两种情况: 1> 初始完数据库后,mysqld启动报错 2> systemctl start mysqld或者service mysqld start报错 首先重现一下现场. 第一种情况 一.启动CentOS镜像,安装Mysql Server 注意,Docker官方CentOS镜像latest版本是7.1.CentOS 7 yum源中默认没有Mysql Server的. 关于如

docker 启动 centos 镜像,容器会自动退出

docker启动centos镜像有两种版本可以解决自动退出的问题: 方式一: docker run -d -it [image-ID] /bin/sh 方式二: 在启动脚本里面增加一个执行进程: 1.在镜像内部执行 RUN touch /var/log/1.txt  然后最后用CMD "tail" "-f" "/var/log/1.txt"结尾 2.启动脚本的方式 #!/bin/bash set -m && sh /opt/red

docker创建centos镜像无法使用systemctl

docker获取centos镜像,里面执行安装lnmp之后 发现使用systemctl无法使用 [[email protected] /]# systemctl restart nginx Failed to get D-Bus connection: Operation not permitted 解决办法 1: docker stop 92926bd84d702: docker export 92926bd84d70 > centos_lnmp_laster.tar3:cat centos_

docker为centos镜像添加sshd服务

使用centos镜像添加sshd服务,并用xshell进行连接.1.拉取centos镜像 [[email protected] ~]# docker pull centosUsing default tag: latestlatest: Pulling from library/centosa02a4930cb5d: Pull complete Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136

Docker的centos镜像内无法使用systemctl命令的解决办法

在Docker官方的centos镜像内无法使用systemctl命令的解决办法, 使用该命令docker报错 Failed to get D-Bus connection: Operation not permitted 解决办法: 运行容器时添加参数 --privileged=true /usr/sbin/init 完成的启动命令为: docker run -itd --name centos7 --privileged=true centos /usr/sbin/init 原文地址:http

Docker官方Centos镜像下安装Elasticsearch【详细步骤】

运行docker镜像[官方centos] 启动容器 docker run -it -d -p 9000-9900:9000-9900 --name cenosElasticsearch centos docker run -it -d -p 9200:9200 -p 9300:9300 --name cenosElasticsearch3 e11524101e04 查看容器并进入 docker ps docker attach e584c6fb2eff 这里启动容器选择了一段ip和主机ip映射「

docker创建支持ssh服务的centos镜像

以centos为基础,目的使用ssh服务远程连接docker容器 环境:宿主机centos7,直接搜索docker的centos镜像,下载最新版本 1.先按照docker:yum install -y epel-release yum install -y docker 2.启动docker: systemctl start docker.service 3.使用ps查看docker是否启动 ps aux |grep docker 4.下载centos的docker镜像 docker pull

Docker之二----镜像制作

Docker镜像制作 1.Docker镜像有没有内核? 从镜像大小上面来说,一个比较小的镜像只有十几MB ,而内核文件需要一百多兆, 因此镜像里面是没有内核的,镜像在被启动为容器后将直接使用宿主机 的内核,而镜像本身则只提供相应的rootfs,即系统正常运行所必须的用户空间的文件系统,比如 /dev,/,/proc,/bin /etc等目录,所以容器当中基本是没有/boot目录的, 而/boot当中保存的就是与内核相关的文件和目录 . 2.为什么没有内核? 由于容器启动和运行过程中是直接使用宿主

CentOS7安装Docker,运行Nginx镜像、Centos镜像

1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum install docker 3.启动Docker,并将其设置为开机启动 (1)启动,systemctl start docker.service (2)开机启动,systemctl enable docker.service (3)帮助,docker --help (4)概要信息,docker info (5)镜像查看,docker images (6)容器查看,即进程查看,d