Docker的安装及镜像管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker的安装及镜像管理相关的知识,希望对你有一定的参考价值。
1. 安装Docker
Docker开源的容器引擎,可以让开发者打包应用以及依赖的库,然后发布到任何流行的linux发行版上,移植很方便;
由go语言编写,基于apache2.0协议发布;
基于linux kernel,要想在win下运行需要借助一个vm(虚拟机)来实现;
自2013年开始,近些年发展迅猛;
docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式;
优点:
启动非常快,秒级实现
资源利用率高,一台高配置服务器可以跑上千个docker容器
更快的交付和部署,一次创建和配置后,可以在任意地方运行
内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率
易迁移,平台依赖性不强
yum安装
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
yum install -y docker-ce
速度比较慢,大家也可以直接下载rpm包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
下载完,上传到linux下
也需要用yum安装,可以自动解决依赖关系
yum install -y docker-ce-xxxx.rpm
启动docker
systemctl start docker
查看进程
ps aux | grep docker
自动生成的规则
保存规则:service docker save
iptables -t nat -F 清除规则
重启docker 服务后规则又出自动添加。
2. 镜像管理
docker pull centos//可以下载centos镜像,速度很慢
配置docker加速器
(参考 http://blog.csdn.net/xlemonok/article/details/71403534)
vi /etc/docker/daemon.json
#加入如下内容
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
说明:这个url为加速器地址,需要同学们自行到阿里云申请
配置完加速器,重启docker服务,再次docker pull centos会快很多
查看本地的镜像
docker images
搜索镜像
docker search ubuntu
其中ubuntu是关键词
给镜像打标签
docker tag centos fxq123
dokcker tag centos fxqtestos:20180201
把镜像启动为容器
docker run -itd centos
//把镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面
查看运行的容器
docker ps
查看运行的容器
docker ps -a
加上-a选项后可以查看所有容器,包括未运行的
删除指定镜像
docker rmi centos
docker rmi fxqtestos:20180201
//用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除
3. 通过容器创建镜像
启动容器
docker run -itd centos /bin/bash
docker run启动容器后,可以通过下面命令进入容器
进入容器
docker exec -it 992c3e4 bash
//其中992c3e4为容器id,这个id可以用docker ps查看,最后面的bash为进入容器后我们要执行的命令,这样就可以打开一个终端
docker start 992c3e4
docker attach 992c3e4
提交容器生成新的镜像
进入该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像
在容器中执行 yum install -y net-tools,然后ctrl d退出容器
docker commit -m "install net-tools" -a "fxq" c901ab1c8028 centos-net
//c901ab1c8028 容器ID通过docker ps -a获取,后面的centos-net为新镜像名字
例如: docker commit -m "install net-tools" -a "fxq" 2c74d574293f centos_with_nettool 这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字
以上是关于Docker的安装及镜像管理的主要内容,如果未能解决你的问题,请参考以下文章