docker(part1)容器技术和docker简介

1.docker简介

1.很早的部署:

  • 部署非常慢:准备物理服务器,安装操作系统,配置系统环境
  • 成本高:购买服务器
  • 资源浪费:cpu和硬盘根本用不完
  • 难以迁移和扩展:迁移需要从新准备服务器,搭建环境。
  • 可能会被限定硬件厂商

虚拟化技术:

1.虚拟化的优点

  • 资源池--一个物理机的资源分配到了不同的虚拟机里。
  • 很容易扩展--加物理机器或者加虚拟机
  • 很容易云化--亚马逊AWS,阿里云等

2.虚拟化的局限性

  • 每当一个虚拟机都是一个完整的操作系统,要给其分配资源,而当虚拟机数量增多时,操作系统本身想好的资源势必会增多

容器解决了什么问题:

  • 解决了开发和运维之间的矛盾:开发环境和运维环境的不一致使得两者撕逼
  • 减少运维工程师的工作:在集群部署的时候,不需要在每台物理机器上安装各个软件,jdk,MySQL,tomcat,redis等等,而是通过对整体打包成镜像的方式,通过docker容器将环境+代码整体迁移过来。

什么是容器:

  • 对软件和其依赖的标准化打包
  • 应用之间的相互隔离,每个容器相互隔离,耦合度低,容器之间的进程不会相互影响
  • 共享同一个OS Kernel
  • 可以运行在很多主流操作系统上

三大要素:

  • 镜像(image):一个模板
  • 容器(container):就是一个模板的实例
  • 仓库(repository)

docker利用容器运行一个或者一组应用,容器是镜像创建的实例。它可以被启动,开始,停止,删除。每个容器都是相互隔离的,可以吧容器看成是一个简易版的linux系统。

 

比较:

  • 传统的虚拟化技术是对硬件进行分配,在上面运行一个完整的系统,再在该系统上运行所需要的进程
  • 而容器技术是应用程序是基于宿主的内核,而且没有对硬件进行虚拟。

 

2.docker的安装

CentOS7

3.docker命令基础

当非root用户安装docker以后,直接输入docker命令会出现以下报错

ERRO[0000] failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: no such file or directory

原因:一种是docker没有启动,另外一种情况就是没有使用sudo docker的方式输入docker命令,没有权限。

解决:如果我们每次都输入sudo docker命令来执行docker命令会很麻烦,因为我们可以创建docker用户组

$ sudo groupadd docker

将当前非root用户加入到group内,然后退出重新登录

$ sudo gpasswd  -a${USER} docker

重启docker服务

$ sudo service docker restart

切换当前会话到新group或者重启x会话

$ newgrp - docker 或者 pkill x

为后面的联系可以去注册一个docker hub账号,然后通过docker login 命令登录

  1. 构建第一个docker镜像

新建文件夹hello,然后在里面新建一个文件 Dockerfile,填入一下信息

FROM alpine

CMD "echo" "hello world"

然后通过docker build -t hello . 构建镜像(注意不要玩那个命令后面的小数点)

然后直接运行 docker run --rm  hello  (--rm表示容器退出时后自动删除该容器)

    2. docker pull 拉取镜像

docker pull <imgesName:tag> 可以不指定标签,默认拉取latest的镜像,不推荐,这种镜像不稳定

docker pull locahost:5000/<imagesName:tag> 对于私有仓库,可以指定仓库地址

    3.docker search 搜索镜像

    4.docker inspect查看镜像信息,还可以查看容器信息

docker inspect hello 即可查看刚才拉取的hello镜像

docker inspect  -f  '镜像创建的时间是:{{.Created}}' hello             通过-f 参数进行定位查询信息

    5.创建镜像

  • 通过 docker pull hello-world 拉取镜像
  • 从Dockerfille文件构建镜像
  1. 输入配置信息
  2. docker build -t hello .
  3. docker run --rm hello
  • 自动构建镜像(从docker hub)

   我们需要构建自己的镜像,而每一次docker build与漫长的等待都非常耗费时间。因此我们可以通过docker hub来帮助我们构建镜像。在登录decker hub以后,点击右上角个人头像,选中account setting ==>link accounts==>gihub==>connet来和我们的github仓库连接。然后就可以创建我们的镜像仓库辽!

  • 通过阿里云加速构建镜像

访问外国网站docker hub,从上面拉取镜像太慢,我们可以使用阿里云的提供的镜像托管平台来拉取镜像。

开发者平台-容器镜像服务,复制我们的镜像加速器地址,对我们默认的docker拉取镜像地址的配置文件进行修改

vim etc/sysconfig/docker(CentOS 7以下版本)    

(CentOS7)以上版本:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://91up0tgw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

                            

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值