码迷,mamicode.com
首页 > 其他好文 > 详细

Docker折腾笔记

时间:2015-06-23 23:24:36      阅读:427      评论:0      收藏:0      [点我收藏+]

标签:


Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖环境到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

技术分享

技术分享


一、安装
1、安装准备 up kernel to 3.8
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
or
yum install epel-release

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install kernel-ml -y

http://elrepo.org/tiki/tiki-index.php:


sed -n ‘/default/c default=1‘ /boot/grub/grub.conf #以新内核启动
reboot


2、安装docker
yum install docker-io device-mapper-event-libs -y

service docker start #启动服务
chkconfig docker on

排错信息:
docker -d
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.
docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference


二、常用命令选项
Usage: docker [OPTIONS] COMMAND [arg...]

docker search ubuntu #搜索镜像
docker pull ubuntu #获取镜像 (默认为lastest)
docker pull centos:6.6 #获取指定镜像tag

docker [-v]|version #版本信息
docker images #列出本地镜像

docker ps #查看容器信息
docker stats 18534ae7fbbc #容器运行状态
docker stop 0185e1cb9466 #终止指定容器
docker logs -f web-15 #查看指定容器log

docker rm 18534ae7fbbc #删除容器
docker rmi ubuntu #删除镜像

docker inspect 18534ae7fbbc |grep ‘"Pid"‘ #查看容器Pid
docker inspect 18534ae7fbbc |grep ‘"IPAddress":‘ #查看容器IP
docker inspect 18534ae7fbbc |grep ‘"Gateway":‘ #查看容器网关

docker rm $(docker ps -a |grep -v ‘Up‘ |cut -d " " -f1) #删除所有未启动的容器
docker rm $(docker ps -a -q) #删除所有容器


三、启动容器的两种方式

1、一种是基于镜像新建一个容器并启动
docker run -it ubuntu +命令 #执行完就退出
docker run -it ubuntu "ps"
docker run -it ubuntu /bin/bash #启动一个容器的bash,-t分配伪终端、-i打开输入

docker run --help
man docker-run
docker run -dit --name Web01 ubuntu:14.04 /bin/bash #-d 后台运行

2、一种是用start选项启动终止状态的容器
docker start web-01


四、连接(进入)容器 :(attach,不推荐)

1、attach (自带选项, 不推荐)
docker attach web-01

2、nsenter (进入命名空间,推荐)
yum install util-linux -y #安装nsenter所属软件包
docker ps #查看已启动容器
docker inspect --format "{{.State.Pid}}" 容器ID|容器名 #获取容器PID
nsenter -t 9724 -m -u -i -n -p -r -w #进入容器
hostname Web01-3797 #给容器主机名加入PID,方便下次进入

3、SSH
docker run -t -i -c 100 -m 256MB -h Web-19 -p 2220:22 --restart="always" --name="web-19" centos:6.6 /bin/bash #之后自动进入容器bash
yum -y install openssh-server openssh-clients #安装SSH
chkconfig sshd on
service sshd start

ifconfig #查看容器IP
passwd root #修改root密码

ssh root@容器IP -p2220

docker commit web-16 centos/sshd #容器保存为镜像,方便下次调用


五、导出导入 :
1、容器
docker export 18534ae7fbbc > /opt/docker/ubuntu.tar #导出容器
cat /opt/docker/ubuntu.tar |docker import - test/ubuntu:v1.0 #导入容器

2、镜像
docker save -o ubuntu_14.04.tar ubuntu:14.04 #导出镜像
docker load --input ubuntu_14.04.tar #载入镜像


六、端口映射
docker run --help
docker run -tid -c 100 -m 512MB -h Web-14 -p 192.168.18.10:80:80 --name="web-14" centos:6.6 /bin/bash #绑定指定IP端口
docker run -tid -c 100 -m 512MB -h Web-15 -p 80:80 --name="web-15" centos:6.6 /bin/bash #绑定全部IP端口
docker run -tid -c 100 -m 256MB -h Web-16 -p 2222:22 --restart="always" --name="web-16" centos:6.6 /bin/bash #自启动,绑定SSH端口
docker run -tid -c 100 -m 512MB -h Web-117 -p 800:80 --name="web-117" centos:6.6 /bin/bash #绑定全部IP端口


七、创建和挂载本地数据卷
1、创建:
docker run -dit --name Web12 -v /webapp centos:6.6 /bin/bash
docker run -dit --name Web02 -v /webapp centos:6.6 /bin/bash
docker run -dit --name Web05 -v /webapp centos:6.6 /bin/bash

2、挂载
docker run -dit --name Web11 -v /opt/downloads:/mnt centos:6.6 /bin/bash
docker run -dit --name Web11 -v /opt/downloads:/mnt:ro centos:6.6 /bin/bash

3、数据卷容器:
docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres #创建一个命名的数据卷容器 dbdata
docker run -d --volumes-from dbdata --name db1 training/postgres #其他容器中使用 --volumes-from 来挂载 dbdata 容器中的数据卷


更多参考:
http://dockerpool.com/books
https://docs.docker.com/installation/#installation


Docker折腾笔记

标签:

原文地址:http://my.oschina.net/chenxu/blog/469923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!