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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
准备mysql, tomcat, nginx的Dockerfile文件,用于生成定制的镜像 redis,zookeeper 镜像直接从云端获取。 打开终端进入tomcat目录,执行: docker build -t conf_tomcat:0.0.1 . 再进入nginx目录,执行: docker build -t conf_nginx:0.0.1 . 再进入mysql目录,执行: docker build -t conf_mysql:0.0.1 . docker images 就能看到这三个新的镜像 root@ubuntu:/home/anan/docker/docker_disconf-master# docker images REPOSITORY TAG IMAGE ID CREATED SIZE conf_mysql 0.0.1 deed528eba7f 13 hours ago 256 MB conf_nginx 0.0.1 655a8ea20190 16 hours ago 111 MB conf_tomcat 0.0.1 8dbaa04dfd30 16 hours ago 393 MB 到docker-composer.yml的目录下,执行: docker-compose up -d 执行完成之后,就可以通过docker ps 看到启动的容器 root@ubuntu:/home/anan/docker/docker_disconf-master# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de596887acac conf_nginx:0.0.1 "nginx -g 'daemon ..." About an hour ago Up About an hour 0.0.0.0:80->80/tcp dockerdisconfmaster_disconf_nginx_1 5bbdb21bf496 conf_tomcat:0.0.1 "catalina.sh run" About an hour ago Up About an hour 8080/tcp dockerdisconfmaster_disconf_tomcat_1 e050bb3c4d05 daocloud.io/library/redis "docker-entrypoint..." About an hour ago Up About an hour 6379/tcp dockerdisconfmaster_disconf_redis_1_1 dd676e1ecbee zookeeper:3.3.6 "/docker-entrypoin..." About an hour ago Up About an hour 0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp dockerdisconfmaster_disconf_zookeeper_1 8efcbedb9a44 daocloud.io/library/redis "docker-entrypoint..." About an hour ago Up About an hour 6379/tcp dockerdisconfmaster_disconf_redis_2_1 eb0d9c248401 conf_mysql:0.0.1 "docker-entrypoint..." About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp dockerdisconfmaster_disconf_mysql_1 现在打开浏览器即可访问disconf 的web端, 用户名和密码都是admin. 停止整个环境的命令: docker-compose stop 删除整个环境的命令: docker-compose rm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值