docker入门篇---初始docker(一)

docker为什么会出现?

一款产品:开发---->运维,两套环境!应用环境,应用配置!
常见问题:我的电脑可以运行,版本更新,导致服务不可用。
环境配置十分的麻烦,每个机器都需要部署环境(redis集群,es等。。。。)。
不能跨平台。
发布项目(jar+mysql+redis。。。),项目能不能带上环境去发布。
传统:开发jar,运维来做!
现在:开发打包部署上线,一套流程。

以上问题,docker提出解决方法。
java —>jar(环境)---->(打包项目带上环境)镜像---->(docker)---->下载镜像---->运行。
docker的核心思想:隔离,打包装箱,每个箱子互相隔离

文档:https://docs.docker.com/
仓库:https://hub.docker.com/

docker能干嘛

之前的虚拟机技术

在这里插入图片描述

缺点:
1.资源占用多;
2.冗余步骤多
3.启动慢

容器化技术

在这里插入图片描述
与传统的虚拟机不同:

  • 传统的虚拟机:运行一个完成的操作系统,在这个系统中安装和运行。
  • 容器化:应用直接运行在宿主机的内核上,容器自己没有内核, 每个容器间,相互隔离,互不影响。

docker的组成

在这里插入图片描述

  • 镜像(Images): docker镜像相当于模板(对象),通过镜像来创建容器。镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。
  • 容器(Containers): docker镜像相当于(对象的实例化),独立运行一个或一组应用,服务最终运行在容器里面。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器运行时,以镜像为基础层,在其上创建一个当前容器的存储层,这个为容器运行时读写而准备的存储层为容器存储层。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。
  • 仓库(Registry): 存放镜像的地方。
    在这里插入图片描述

安装docker

# 1.移除掉旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

# 2.删除所有旧的数据
sudo rm -rf /var/lib/docker

#  3.安装依赖包
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

# 4.添加源,使用了阿里云镜像
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 5.配置缓存
sudo yum makecache fast

# 6.安装最新稳定版本的docker
sudo yum install -y docker-ce

# 7启动docker引擎并设置开机启动
sudo systemctl start docker


# 8.配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

# 9重启
sudo systemctl daemon-reload
sudo systemctl restart docker

docker version

在这里插入图片描述

第一个dockers容器

docker run hello-world

在这里插入图片描述

分析run指令

在这里插入图片描述

docker是怎么工作的?

docker是一个client-server的服务,docker的守护进程运行在主机上,通过socket从客户端访问。docker-server是接受docker-client的指令。
在这里插入图片描述

docker为什么比vm快?

  • docker有着比虚拟机更少的抽象层;
  • docker利用的是宿主机的内核,vm需要的是Guest OS
    在这里插入图片描述
    所以运行容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值