Docker 快速学习(一)
2014-07-18 13:35
267 查看
Docker 快速学习(一)
操作系统:centos 6.5一、安装:
1、配置epel源:
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
2、安装 docker-io febootstrap
# febootstrap用来制作centos镜像的工具yum install docker-io febootstrap -y
3、安装完成后挂cgroup文件系统
vim /etc/fstab 添加一行: none /sys/fs/cgroup cgroup defaults 0 0
4、重启系统:
reboot
docker 开机后会自动启动,如果没有启动可以手动启动:docker -d &
二、下面来制作一个Centos 6.5 镜像
1、使用febootstrap制作CentOS镜像文件centos6-image目录
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/[/code]
#参数说明:
-i 镜像所需要安装的工具:把-i后面的参数传递给yum来实现安装,上面安装了ssh服务
centos6 是centos版本
centos6-image 是指定目录
命令的执行完成后,会在当前目录下生成一个目录centos6-imagebash-4.1.2# bash-4.1.2# bash-4.1.2# ls bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var bash-4.1.2# ls -a root
这时root目录下没有任何文件,也不没有隐藏的点文件,如:.bash_logout .bash_profile .bashrc
如果这时制作出来的镜像使用ssh登录,会直接进入根目录下,如下:bash-4.1.2# bash-4.1.2# bash-4.1.2# ls bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var bash-4.1.2# ls -a root
. ..
为了避免这种情况,可以在centos6-image目录的root目录把.bash_logout .bash_profile .bashrc这三个文件设置一下cd centos6-image && cp etc/skel/.bash* root/
这样就可以实现远程登录正常了
基于这样的实现,我们把可以以后一些复杂的配置文件事先配置好后放在一个目录下,然后再通过Dockerfile文件来调用,即可快速完成。2、下面来创建一个基本的镜像
cd centos6-image && tar -c .|docker import - centos6-base
命令完成后,使用docker images来查看docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos6-base latest a01c3d440db8 1 minutes ago 311.3 MB
此时一个基本的镜像已完成,3、下面来用Dockerfile文件来创建一个可以ssh登录的镜像
Dockefile 文件如下:#Dockerfile FROM centos6-base MAINTAINER zhou_mfk <zhou_mfk@163.com> 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:redhat' | chpasswd RUN 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 RUN yum install tar gzip gcc vim wget -y ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 CMD /usr/sbin/sshd -D #End
Dockerfile说明请看Docker系列相关博文 Dockerfile 文件详解4、使用上面的Dockerfile文件来创建一个可ssh登录的镜像
docker build -t centos6-ssh .
build: Build a container from a Dockerfile 这个是创建一个容器从Dockerfile文件
docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image
. 表示在当前目录下
docker build -t centos6-ssh /root/images/abc 这个表示Dockerfile文件在:/root/images/abc下
命令执行完成后,centos6-ssh镜像就创建完成了,
查看一下:
docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos6-ssh latest b8ca70e7adee 1 hours ago 311.3 MB
centos6-base latest a01c3d440db8 2 hours ago 311.3 MB
下面创建一个容器来登录下:
docker run -d -p 127.0.0.1:2222:22 centos6-ssh
ssh root@127.0.0.1 -p 2222
输入密码:redhat
[root@a856a3c242cf ~]#
[root@a856a3c242cf ~]#
[root@a856a3c242cf ~]# ls
[root@a856a3c242cf ~]#
[root@a856a3c242cf ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
相关文章推荐
- Dockers 快速学习(四)Docker 容器的使用
- Docker 快速学习
- Docker 之Dockerfile 快速学习(二)
- 一步一步学习ASP.NET 5 (七)- 快速把ASP.NET 5应用以Docker方式部署到Mac上
- 快速学习Docker和容器技术
- Go?Docker?技术人快速学习新技术
- Docker 快速学习
- docker学习笔记06:docker快速清理命令
- docker学习笔记6【docker快速删除所有镜像】
- Docker 快速学习(三) docker命令的使用
- Docker 之Dockerfile 快速学习
- [Docker]Docker快速上手学习笔记
- 【Docker学习】快速搭建并运行springboot项目
- 快速学习正则表达式
- JSP快速学习指南
- 用实验快速学习sendmail
- 快速学习,理解.SQL注入技术
- 必须快速进入具体的编程方式的学习过程中
- C++程序员快速学习C#---(三)完
- 快速学习正则表达式