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

docker安装、使用学习

2015-09-25 09:17 761 查看
安装
docker使用go语言编写,用 cgroup 实现资源隔离,容器技术采用 LXC。
当前docker仅支持64位操作系统,yum环境若不支持,可以先安装epel仓库:

#rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install docker
安装 golang 环境
# yum install go
# go version
go version go1.2 linux/amd64
3.启动
用系统管理启动# systemctl start docker.service

开机自启动
# systemctl enable docker.service
查看状态
# systemctl status docker.service
docker.service - Docker Application Container Engine

Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)

Active: active (running) since Fri 2014-08-22 22:06:55 CST; 4min 23s ago

Docs: http://docs.docker.io

Main PID: 2177 (docker)

CGroup: /system.slice/docker.service

└─2177 /usr/bin/docker -d --selinux-enabled

查看下载的image

#docker images

查看当前运行的docker容器

#docker ps -l

如何进入docker容器:

a)查找容器实例pid

#docker inspect --format "{{ .State.Pid }}" <container-id>

<container-id>通过"#docker ps"可查询到

b)用nsenter进入容器

#nsenter --target <$PID> --mount --uts --ipc --net --pid

也可以sshd方式,但容器需要运行一个sshd进程。

参考:http://www.oschina.net/translate/enter-docker-container?cmp

进入docker的脚本如下:

#!/bin/bash

im=$(docker images|grep gslb|awk '{print $3}')

echo $im

cid=$(docker ps -l|grep $im|awk '{print $1}')

pid=$(docker inspect --format "{{ .State.Pid }}" $cid)

nsenter --target $pid --mount --uts --ipc --net --pid

#启动新docker实例

# docker run -d --net=host <image id> top -b

#停止docker实例

#docker stop <CONTAINER
ID>
#删除docker实例

#docker rm <CONTAINER ID> docke

#删除image

# docker rmi <image name>
docker的image保存与加载

保存container为本地压缩文件

$sudo
docker save <REPOSITORY
> >  yourname.
tar

这里,REPOSITORY是image名称,通过#docker images获得。
如何修改了内容,需要生成新的image,再导出image文件。方法如下:
$sodu docker commit <CONTAINER ID> <new image name>

导入别的机器上的container

$sudo
docker
load
< yourname.
tar

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: