设为首页 收藏本站
查看: 1471|回复: 0

[经验分享] docker 自制CentOS 6-lnp镜像

[复制链接]

尚未签到

发表于 2017-11-15 11:44:37 | 显示全部楼层 |阅读模式
环境准备

1台centos 6.5镜像虚拟机  febootstrap、docker
  febootstrap 安装



yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum -y install febootstrap
  docker 安装



yum -y install docker-io
service docker start
  使用root账号制作镜像,普通用户制作后会有各种问题:



febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/  
(-i 安装package, centos6 操作系统版本,centos6-doc安装目录,最后是源地址)
  执行完成后 你当前目录会生成centos6-image 目录



cd centos6-image
cp etc/skel/.bash* root/ (不拷贝,登录后Linux提示行会显示 bash-41#,而不是我们正常看到的[iyunv@localhost ~]#)
tar -c .|docker import - centos6-base (centos6-base 为docker 镜像名称)
  查看镜像



docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos6-base          latest              8f94e0bebd19        6 hours ago         399.4 MB
  启动进入镜像



[iyunv@192-168-0-151 build]# docker run  -itd 8f94e0bebd19 bash
2e943abb130a32830dd8580ab9345dd514b7b39597559cd08a790a8754ef56f1
[iyunv@192-168-0-151 build]# docker exec -it 84f48b314bfa bash
[iyunv@2e943abb130a /]#

  进入镜像后,你可以安装自己的应用,我这里安装的是php 和nginx
DSC0000.png

  我在/etc/init.d/ 下加入了nginx 和php-fpm 的启停脚本(可以省略)
  容器里应用开机启动
  容器下面多个应用启动的方法有很多种,比如supervisord、shell脚本等
  我这里用的是shell 脚本的方法



mkdir /usr/local/scripts
[iyunv@2e943abb130a scripts]# cat init-bashrc.sh
#!/bin/sh
function service_start()
{
for SERVICE in nginx php-fpm sshd
do
if ! (ps ax | grep -v grep | grep $SERVICE > /dev/null)
then
/etc/init.d/$SERVICE start;
fi
done
}
service_start
  编辑   ~/.bashrc



[iyunv@2e943abb130a scripts]# cat  ~/.bashrc   
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -l'
alias vi='vim'
/usr/local/scripts/init-bashrc.sh
# User specific aliases and functions
  记得source  ~/.bashrc
  退出容器 ctrl +d
  提交容器为新的镜像



docker commit 2e943abb130a centos6-nginx-php56:v1
d85f477d9e00d12c380ebc442d544e0d8c9dd8ee86441e0885bb54f636c18ec1

  提交成功后,docker images 会发现多出一个镜像
  启动新镜像



[iyunv@192-168-0-151 build]# docker run -it centos6-nginx-php56:v1
Starting nginx:                                            [  OK  ]
Starting php-fpm:                                          [  OK  ]
Starting sshd:                                             [  OK  ]
[iyunv@36abc5805a89 /]#
  你还可以启动时暴漏端口,修改root 密码等
  这里我们可以用Dockerfile 来做,下面只是个示例,关于Dockerfile 这里就不说明了。
  cat Dockerfile



centos6-nginx-php56:v1
Tempted
sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
echo "root:123456" | chpasswd
22 80
["bash"]
  build 新的镜像



[iyunv@192-168-0-151 build]# docker  build -t centos6-lnp:v1 .
Sending build context to Docker daemon 15.87 kB
Sending build context to Docker daemon
Step 0 :  centos6-nginx-php56:v1
---> d85f477d9e00
Step 1 :  Tempted
---> Running in 46ec3f0fab12
---> 4ed3d31476d0
Removing intermediate container 46ec3f0fab12
Step 2 :  sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
---> Running in 48ece83ad435
---> c02f08cf9b19
Removing intermediate container 48ece83ad435
Step 3 :  echo "root:123456" | chpasswd
---> Running in 22d1086800ca
---> 18db13e52113
Removing intermediate container 22d1086800ca
Step 4 :  22 80
---> Running in 8a65e01a0e84
---> 63a5bd61ba88
Removing intermediate container 8a65e01a0e84
Step 5 :  bash
---> Running in 671572d70abf
---> d0c9c51584ee
Removing intermediate container 671572d70abf
Successfully built d0c9c51584ee
  这时你执行docker images 会看到三个image
  启动新的镜像



[iyunv@192-168-0-151 build]# docker run -itd d0c9c51584ee bash
bc10a9e77a8c8b9eb12a7da16d6513ffa11a686d29dc86e050e702fac96a6109
[iyunv@192-168-0-151 build]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
bc10a9e77a8c        d0c9c51584ee        "bash"                 20 seconds ago      Up 17 seconds       22/tcp, 80/tcp      cocky_morse



[iyunv@192-168-0-151 build]# docker  exec -it bc10a9e77a8c ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:51  
inet addr:172.17.0.81  Bcast:0.0.0.0  Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:41 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5060 (4.9 KiB)  TX bytes:5179 (5.0 KiB)
lo        Link encap:Local Loopback  
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  连接



[iyunv@192-168-0-151 build]# ssh 172.17.0.81
root@172.17.0.81's password:
Last login: Fri Nov  3 17:23:16 2017 from 172.17.42.1
[iyunv@bc10a9e77a8c ~]#
  导出镜像



docker  save centos6-lnp:v1 >centos6-lnp.tar

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407199-1-1.html 上篇帖子: Centos下 Nginx安装与配置 下篇帖子: CentOS 7 中英文桌面安装步骤详细图解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表