设为首页 收藏本站
查看: 949|回复: 0

[经验分享] docker安装,镜像、容器管理

[复制链接]
发表于 2018-5-26 06:42:24 | 显示全部楼层 |阅读模式
  Docker介绍
  官网 www.docker.com
github https://github.com/docker/docker.github.io
开源的容器引擎,可以让开发者打包应用以及依赖的库,然后发布到任何流行的linux发行版上,移植很方便
由go语言编写,基于apache2.0协议发布
基于linux kernel,要想在win 运行需要借助一个vm(虚拟机)来实现
  Docker与传统的虚拟化比较
DSC0000.jpg

DSC0001.jpg

  Docker的优势
  启动非常快,秒级实现
资源利用率高,一台高配置服务器可以跑上千个docker容器
更快的交付和部署,一次创建和配置后,可以在传任意地方运行
内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率
易迁移,平台依赖性不强


特性
容器
虚拟机




启动
秒级
分钟级


硬盘使用
一般为MB
一般为GB


性能
接近原生
弱于


系统支持量
单机支持上千个容器
一般几十个
  Docker核心概念


  • 镜像,是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署
  • 容器,镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。
  • 仓库,存放镜像的一个场所,仓库分为公开仓库和私有仓库。最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库(dockerpool.com).
  Docker安装
  Docker下载与安装

[root@localhost yum.repos.d]# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
[root@localhost yum.repos.d]# yum install docker-ce -y
  查看docker-ce的版本

# yum list docker-ce.x86_64  --showduplicates | sort -r
  安装指定版本的docker-ce

# yum install docker-ce-<version>
  启动docker,查看进程

[root@localhost yum.repos.d]# systemctl start docker.service
DSC0002.jpg

  启动后,会自动生成一些防火墙规则
  镜像管理
  拉取 centos 镜像

[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:bc494daa9d9ad7e37f93236fbd2c3f372739997c6336ef3c321e227f336e73d3
Status: Downloaded newer image for centos:latest
  配置docker加速器
  阿里云加速器
  登录地址https://dev.aliyun.com/search.html 注册一个账号
点击“创建我的容器镜像”--->镜像加速器
DSC0003.jpg
按照上面的配置即可。
  DaoCloud加速器
  登入到 https://www.daocloud.io/mirror#accelerator-doc 注册账号
DSC0004.jpg

  查看本地的镜像

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              e934aafc2206        5 hours ago         199MB
  搜索镜像

[root@localhost ~]# docker search keywords // 例如搜索jumpserver
[root@localhost ~]# docker search jumpserver
  给镜像打标签

[root@localhost ~]# docker tag centos apeng_centos
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
apeng_centos        latest              e934aafc2206        6 hours ago         199MB
centos              latest              e934aafc2206        6 hours ago         199MB
ubuntu              latest              f975c5035748        4 weeks ago         112MB
DSC0005.jpg

  将镜像启动为容器
DSC0006.jpg


  -i 表示容器的标准输入打开
-t 表示分配的伪终端
-d 表示后台启动

  查看启动状态的容器,加上-a 选项可查看所有的容器

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a8dfe32a2be7        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            eloquent_wing
  删除镜像
DSC0007.jpg


[root@localhost ~]# docker rmi aming_centos:235123
Untagged: aming_centos:235123
  通过容器创建镜像
  镜像启动为容器之后,进入一个启动的容器

  docker exec [OPTIONS] CONTAINER COMMAND [ARG...] [flags]


//拉取下来的centos系统大小很小,需要的软件自己安装
[root@localhost ~]# docker exec -it a8dfe32a2 /bin/bash
[root@a8dfe32a2be7 /]# ifconfig
bash: ifconfig: command not found
[root@a8dfe32a2be7 /]# yum install net-tools -y
  通过容器创建由自己定义环境的镜像

[root@localhost ~]# docker commit -m "install_net-tools" -a "author:apeng" a8dfe32a2be7 new_centos
  此时系统会产生一个new_cnetos的镜像
DSC0008.jpg
  通过 docker build 创建一个基于centos的httpd web服务器镜像
  创建工作目录,创建Dockerfile文件

[root@localhost ~]# mkdir /docker-build
[root@localhost ~]# touch /docker-build/Dockerfile
  编辑Dockerfile

FROM centos
MAINTAINER user1 <user1@163.com>
RUN yum -y install httpd
ADD start.sh /usr/local/bin/start.sh
ADD index.html /var/www/html/index.html
  创建start.sh和index.html

[root@localhost ~]# cd /docker-build/
[root@localhost docker-build]# echo "/usr/sbin/httpd -DFOREGROUND" > start.sh
[root@localhost docker-build]# chmod a+x start.sh
[root@localhost docker-build]# echo "docker image build test" > index.html
DSC0009.jpg

  使用命令build来创建新的image

[root@localhost docker-build]# docker build -t centos:httpd .
DSC00010.jpg

  将镜像导出为tar包

[root@localhost ~]# docker save -o /opt/docker-centos-httpd.tar centos:httpd
  将tar包导入为本地镜像

[root@localhost ~]# docker load -i /opt/docker-centos-httpd.tar
  容器端口映射
  将镜像centos:httpd运行为容器,将80端口映射到本机的9000,启动httpd

[root@localhost ~]# docker run -d -p 9000:80 centos:httpd /bin/sh -c /usr/local/bin/start.sh
  查看端口

[root@localhost ~]# netstat -tlnp|grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN      13774/docker-proxy
  在浏览器中访问容器的httpd服务的主页
DSC00011.jpg

  在容器中添加test1.html

[root@localhost ~]# docker exec -it e5fcdc897c58 /bin/bash
[root@e5fcdc897c58 /]# echo "docker image test1 successful" > /var/www/html/test1.html
  在浏览器中访问test1.html
DSC00012.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481096-1-1.html 上篇帖子: NFS PersistentVolume 下篇帖子: docker模板创建镜像,容器管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表