文档章节

Docker 快速学习(一)

ZhouLS
 ZhouLS
发布于 2014/07/18 13:35
字数 904
阅读 4595
收藏 5

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/

#参数说明:

-i 镜像所需要安装的工具:把-i后面的参数传递给yum来实现安装,上面安装了ssh服务

centos6 是centos版本

centos6-image 是指定目录

命令的执行完成后,会在当前目录下生成一个目录centos6-image

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

这时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


© 著作权归作者所有

共有 人打赏支持
ZhouLS

ZhouLS

粉丝 16
博文 9
码字总数 8719
作品 0
浦东
系统管理员
私信 提问
GitHub新项目Deepo:一键安装11项深度学习框架与环境

摘要:最近,一项关注于快速构建深度学习环境的 GitHub 项目十分流行,这个名为 Deepo 的项目由一系列 Docker 镜像组成,包含了 TensorFlow、MXNet、Caffe 和 Torch 等 11 个流行的深度学习研...

机器之心
2017/12/18
0
0
资源 | GitHub新项目Deepo:一键安装11项深度学习框架与环境

  选自GitHub   机器之心编译   参与:蒋思源      最近,一项关注于快速构建深度学习环境的 GitHub 项目十分流行,这个名为 Deepo 的项目由一系列 Docker 镜像组成,包含了 Tens...

机器之心
2017/12/18
0
0
IntelliJ IDEA快速实现Docker镜像部署

一、Docker开启远程访问 二、IntelliJ IDEA安装Docker插件 三、启用Docker 四、Spring Boot服务docker部署 1、新建一个Spring Boot工程,在工程里写一个REST接口,如下,简单返回一个字符串。...

吴伟祥
2018/11/09
0
2
容器Docker学习系列七~系统信息学习

前面了解的Docker学习的本地镜像管理还有镜像仓库的命令学习,怎么说呢其实这些命令已经够我们平常使用的了。但是如果随着发展我们在系统程序调优上可能就需要了解更多的知识。比如Docker系统...

LuckQI
2018/08/22
0
0
Docker 与 Kubernetes 开源书 - docker-book

本开源书,包含两部分: Docker Docker部分,包括: 入门 Dockerfile详解 镜像管理 工具 持久化 网络 Docker Compose 七大主题,涵盖Docker常用命令、Dockerfile常用命令、网络、存储、Docke...

周立_ITMuch
2018/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python中类方法和静态方法区别

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。 在C++中,静态方法与类方法逻辑上是等价的,只有一...

xiangyunyan
今天
9
0
Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
今天
4
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
11
0
介绍python中运算符优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部...

问题终结者
今天
4
0
Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让...

程序猿DD
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部