Docker的安装及镜像管理

简介:

1. 安装Docker

blob.png

Docker开源的容器引擎,可以让开发者打包应用以及依赖的库,然后发布到任何流行的linux发行版上,移植很方便;

由go语言编写,基于apache2.0协议发布;

基于linux kernel,要想在win下运行需要借助一个vm(虚拟机)来实现;

自2013年开始,近些年发展迅猛;

docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式;

blob.png

优点:

启动非常快,秒级实现

资源利用率高,一台高配置服务器可以跑上千个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

blob.png

自动生成的规则

保存规则:service docker save

blob.png

blob.png

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

blob.png

搜索镜像

docker search ubuntu    

其中ubuntu是关键词

blob.png

给镜像打标签

docker tag centos fxq123

dokcker tag centos fxqtestos:20180201

blob.png

把镜像启动为容器

docker run -itd centos

//把镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面

blob.png

查看运行的容器

docker ps

查看运行的容器

blob.png

docker ps -a

加上-a选项后可以查看所有容器,包括未运行的

blob.png

删除指定镜像

docker rmi centos

docker rmi fxqtestos:20180201

//用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除

blob.png

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

blob.png

提交容器生成新的镜像

进入该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像

在容器中执行 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,再后面为新镜像的名字

blob.png



本文转自 枫叶云  51CTO博客,原文链接:http://blog.51cto.com/fengyunshan911/2068354

相关文章
|
1月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
268 100
|
1月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
226 99
|
1月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
206 98
|
1月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
28天前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
161 3
docker 安装 Postgres 17.6
|
10天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
138 5
|
10天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
132 1
|
1月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
80 8
|
2月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
187 16