docker 真实---安装基本映像 (一)

浸泡了几天的官方网站,正确docker有了更好的理解。准备着手建立一个公司的开发和测试环境,包含java、python。

环境介绍

首先说明一下我的环境

2物理server(以后简称为主机)

主机A配置,如下面:

[[email protected] ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:        6.5
Codename:       Final
[[email protected] ~]# uname -a
Linux opnvz 3.10.52-1.el6.elrepo.x86_64 #1 SMP Fri Aug 8 11:40:18 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] ~]# docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0

主机B 今天还用不到,后面再介绍

目标

创建一个基础镜像,要求具备下面功能:

  • 使用国内软件源
  • 安装进程管理工具supervisor管理启动进程
  • 能够使用ssh服务

安装步骤

从一个文件系统创建base镜像

创建镜像的方法有非常多,官方推荐的是直接从官网仓库pull一个,但因为官网被墙的比較厉害。所以这里我选择从文件系统创建一个base镜像。具体方法见我的另外一片博文http://blog.csdn.net/smallfish1983/article/details/38555827

这里以ubuntu14.04 为例。从openvz下载一个ubuntu14.04的模板

wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64.tar.gz

cat ubuntu-14.04-x86_64-minimal.tar.gz  |docker import - ubuntu:base

然后用docker images看下:

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

ubuntu              base               05ac7c0b9383        17 seconds ago      215.5 MB

这样我们就建了一个基于openvz模板的ubuntu基础镜像。(尽管官方的镜像可能比这个更小,但一些基础的如ping这种工具都没有安装,不是十分方便,推荐openvz的模板)

更改软件源、安装supervisor服务

能够使用docker的dockerfile来完毕整个过程,只是个人觉的还是自己手工进去配置完之后更方便。dockerfile更适合分享你的创建过程给其它人。

这里我们运行 docker run -t -i ubuntu:base /bin/bash 进入虚拟机

编辑apt软件源vi /etc/apt/sources.list,删除里面的内容,粘帖上国内163的源

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

运行apt-get update更新

然后安装supervisor服务

apt-get supervisor
cp supervisord.conf conf.d/
cd conf.d/
vi supervisord.conf 

改动该文件例如以下:

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)
nodaemon=true                         。(改动该软件的启动模式为非daemon,否则docker 在运行的时候会直接退出)
[include]
files = /etc/supervisor/conf.d/*.conf

[program:sshd]
command = /usr/sbin/sshd -D        ;(加入ssh服务)<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

配置ssh服务

创建ssh的执行文件夹

mkdir /var/run/sshd

更改rootpassword passwd

vi /etc/ssh/sshd_config 改动以下2个參数同意root登陆

PermitRootLogin yes
UsePAM no

退出 docker

[email protected]:/etc/supervisor/conf.d# exit
exit
[[email protected] start]# docker commit f3c8  ubuntu
5c21b6cf7ab3f60693f9b6746a5ec0d173fd484462b2eb0b23ecd2692b1aff6b
[[email protected] start]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu                           latest              5c21b6cf7ab3        6 seconds ago       512 MB<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

提交刚才的改变到新的image ubuntu上。假设不加冒号tag。默认的tag就是latest

如今新建一个文件夹

mkdir ubuntu
touch ubuntu/Dockerfile
vi ubuntu/Dockerfile

加入例如以下内容

FROM ubuntu

EXPOSE  22
CMD ["/usr/bin/supervisord"]<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

然后从这个文件创建image

[[email protected] start]# docker build -t ubuntu ubuntu/
Sending build context to Docker daemon  2.56 kB
Sending build context to Docker daemon
Step 0 : FROM ubuntu
 ---> 5c21b6cf7ab3
Step 1 : EXPOSE  22
 ---> Running in 00a75d649b65
 ---> 0429a60c040d
Removing intermediate container 00a75d649b65
Step 2 : CMD ["/usr/bin/supervisord"]
 ---> Running in 49d505f56418
 ---> c5d51fba9226
Removing intermediate container 49d505f56418
Successfully built c5d51fba9226<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

再看下images

[[email protected] start]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
ubuntu                           latest              c5d51fba9226        About a minute ago   512 MB
<none>                           <none>              66604abb62b1        38 minutes ago       570.3 MB<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

刚才创建的ubuntu 被新的image给替代了,而之前的镜像我们假设要删掉的话。得先删除刚才我们运行的容器,然后再删除image

docker ps -a<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">
</span></span>

找到刚才的容器

docker rm  f3c8005aa252
docker rmi 66604abb62b1

再看下images

[[email protected] start]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
ubuntu                           latest              c5d51fba9226        About a minute ago   512 MB

docker run -p 301:22 -d --name test ubuntu /usr/bin/supervisord

然后我们就能够ssh 到301port了

这里,粉底ubuntu基本的图像创建完毕,这背后图像的基础上创造其他服务

时间: 2024-10-19 19:49:05

docker 真实---安装基本映像 (一)的相关文章

Docker的安装基本命令配置详解

Docker 官网:https://docs.docker.com      Docker值得关注的特性:         文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里.         资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用Cgroup.         网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址.             日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索

Docker的安装和使用说明——Docker for Windows

一.Docker安装 1.1官方方法 官方下载页面:http://www.docker.com/products/docker#/windows 官方下载地址:https://download.docker.com/win/stable/InstallDocker.msi 1.2推荐方法: 1.2.1 DockerToolbox官方地址:http://www.docker.com/products/docker-toolbox 官方最新版:https://github.com/docker/to

Docker的安装,配置,更新和卸载

在Linux中开启Docker引擎 我们可以在Linux中安装Docker并运行Hello world应用程序.通过下面这些操作,我们将会学到更多有关于Docker的基础特征.我们将会学到如何: 安装Docker引擎 在一个容器中运行软件镜像 在Docker Hub中浏览一个镜像 创建你的镜像,并且在容器中运行它 创建一个Docker Hub账户和一个镜像库 创建你自己的镜像 将你的镜像放到Docker Hub中让其他人使用 该开始教程是用于减少用户碰到问题的可能性,为了能够测试成功,一定要遵循

Docker的安装(centos下)

Docker中文网 http://www.docker.org.cn/index.html 镜像(Image)——就是只读的 模板,用于创建 容器: 容器(Container)——简易版mini版linux小环境系统,仅用内核(100M左右): 仓库(Repository)——集中存放镜像的文件的地方.每个镜像有自己的标签: 1.公开库Docker Hub(hub.docker.com)_国内有  阿里云.网易云 2.私有库 查看内核版本 Centos-6.5或者更高,系统为64位:内核版本2.

docker学习-安装

CentOS Docker 安装 使用 Docker 仓库进行安装 在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库.之后,您可以从仓库安装和更新 Docker. 设置仓库 安装所需的软件包.yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2. yum install -y yum-utils devi

Docker CE安装及配置国内镜像加速教程

Docker CE安装教程 一.版本说明 2017年2月份,Docker公司发布了全新的Docker版本:V1.13.0.从2017年3月1号开始,Docker的版本命名发生如下变化: 项目 说明 版本格式 YY.MM stable版本 每个季度发行 edge版本 每个月发行 同时将Docker分成CE和EE 2个版本.CE版本即社区版(免费,支持周期三个月),EE即企业版,强调安全,付费使用. Docker 会每月发布一个 edge 版本(17.03, 17.04, 17.05...),每三个

Docker的安装及简单使用

1.  Docker的安装 (这里的“安装docker”其实就是安装Docker Engine) $ sudo apt-get intasll docker.io note: apt-get是ubuntu安装软件的管理工具 2.  确认docker engine是否安装成功 # Check that you have a working install $ sudo docker info 3.  下载一个镜像(Download a pre-built image) # Download an

docker客户端安装

前置条件 CentOS7.1以上 查看发行版版本号 lsb_release -a 安装docker yum安装 1)使用root权限登录系统 2)更新系统包到最新 yum -y update 3)添加yum仓库 # cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7 enab

Docker的安装与启动

Docker安装 #yum install docker-engine (centos 6.5) 或者#curl -fsSL https://get.docker.com/ | sh 如果是出现"Warning: the "docker" command appears to already exist on this system."就意味你曾经装过docker但是失败了,这个时候需要#yum list installed | grep docker,然后把出现的