您的位置:首页 > 运维架构 > Docker

Docker安装配置使用总结_20151105_莫小贝

2015-11-05 09:34 791 查看
<
Docker安装配置使用总结
1Docker简介1. Docker入门:
http://dockone.io/article/277
2. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境:
http://www.blogjava.net/yongboy/archive/2013/12/12/407498.html
3. Docker常用命令:
http://blog.csdn.net/zhang__jiayu/article/details/42611469 http://blog.csdn.net/wsscy2004/article/details/25878363
Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。

Docker值得关注的特性:

文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。

网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。

日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。

变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。

交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。

Docker通常用于如下场景:

web应用的自动化打包和发布;

自动化测试和持续集成、发布;

在服务型环境中部署和调整数据库或其他的后台应用;

从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
2安装环境要求Docker 0.7版本需要linux内核 3.8支持,同时需要AUFS文件系统。Ubuntu14 x64虚拟机即可。
3安装方法install_docker.sh#!/bin/sh

apt-get update

apt-get install docker.io

ln -sf /usr/bin/docker.io /usr/local/bin/docker

sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

apt-get install apt-transport-https

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

apt-get update

apt-get install lxc-docker
4测试:创建一个容器docker run -i -t learn/tutorial /bin/bash

会看到:

root@51774a81beb3:/#

进入交互式环境

apt-get update

apt-get install openssh-server

which sshd

/usr/sbin/sshd

mkdir /var/run/sshd

passwd #输入用户密码,我这里设置为123456,便于SSH客户端登陆使用

exit #退出

注意:ubuntu系统不允许root登录,所以,需要修改系统配置,允许root远程登录,或者添加一个用户并设置口令。

useradd -d /home/topca -m topca

passwd topca

编辑 /etc/suders: sudo visudo (或者直接用编辑器编辑sudoer文件)

在 root ALL = (ALL) ALL 下面加入:topca ALL = (ALL) ALL

保存退出(ctrl+o, ctrl+x)

默认bash:

vi /etc/passwd

参考root的配置,在最后添加/bin/bash

topca:x:1000:1000::/home/topca:/bin/bash
5获取到刚才操作的实例容器ID#docker ps -lCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

51774a81beb3 learn/tutorial:latest /bin/bash 3 minutes ago Exit 0 thirsty_pasteur
6所有操作,提交保存,便于SSH登陆使用docker commit 51774a81beb3 learn/tutorial
7以后台进程方式长期运行此镜像实例docker run -d -p 22 -p 80:8080 learn/tutorial /usr/sbin/sshd -D查看一下,是否成功运行:

#docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

871769a4f5ea learn/tutorial:latest /usr/sbin/sshd -D About a minute ago Up About a minute 0.0.0.0:49154->22/tcp, 0.0.0.0:80->8080/tcp focused_poincare

分配随机的SSH连接端口号为49154
8可以ssh连接了ssh root@127.0.0.1 -p 49154
9命令行操作太麻烦,

Docker管理工具Web UI
DockerUI & Shipyard:
http://dockone.io/article/225
安装DockerUI这个容器:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

访问:
http://192.168.100.213:9000
10导出/导入容器docker export <CONTAINER ID> > /home/export.tar

cat /home/export.tar | sudo docker import - busybox-1-export:latest
11导出/导入镜像docker save busybox-1 > /home/save.tar

docker load < /home/save.tar
12镜像上传下载保存太麻烦,

搭建局域网Docker registry
docker run -d -p 5000:5000 registry

注意:需要修改docker的配置:

/etc/init/docker.conf, 在其中增加--insecure-registry 192.168.112.136:5000

stop docker

start docker

(restart docker 好像不好使)

ps -ef|grep docker 看到docker daemon进程含有--insecure-registry 192.168.112.136:5000即可。
查看本地已有的镜像:

docker images

通过 docker tage 命令将 hello-world 这个镜像标记为 192.168.59.104:5000/hello-world之后,再 push 到该镜像到私有仓库:

docker tag hello-world 192.168.59.104:5000/hello-world

docker push 192.168.100.213:5000/hello-world

docker search 192.168.100.213:5000/hello

docker pull 192.168.112.136:5000/busybox
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: