Docker的安装部署、镜像构建与优化

本文介绍了Docker的基本概念、容器与虚拟机的区别、Docker的安装部署步骤,以及如何通过Dockerfile构建和优化镜像。通过实例展示了Docker在2048小游戏和Ubuntu环境中的应用,强调了Docker的轻量级和高效性,讨论了Dockerfile的使用技巧和镜像优化策略。
摘要由CSDN通过智能技术生成

1.什么是Docker?

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
  DockerClient客户端
  Docker Daemon守护进程
  Docker Image镜像
  DockerContainer容器
起源
  Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
  Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
    Docker是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具。这使得Docker的操作非常简单。
Docker 架构
  Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像

    Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。
  Docker daemon 一般在宿主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。

2.容器和虚拟机的区别

容器特点:容器共享宿主机的操作系统,容器的迁移非常方便,可以迁移到任何地方,只需要将容器拷贝到你的u盘,容器基本上是秒级部署,单台主机可以支持上千个容器
虚拟机原理:在宿主主机上运行虚拟机的操作系统,相当于再启动了一个主机,镜像比较大,而且操作系统会占用额外的cpu、内存、硬盘,底层必须要有qemu,就是内核的虚拟化、kvm的支持,可以做到完全隔离,而容器只能做到安全隔离

我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,
虚拟机一旦被开启,预分配给它的资源将全部被占用。 每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
而容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。
容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行
容器技术是实现操作系统虚拟化的一种途径,可以让您在资源受到隔离的进程中运行应用程序及其依赖关系。
通过使用容器,我们可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,
从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。
容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响

3.Docker的安装部署和简单应用(2048小游戏,ubuntu)

Docker的安装启动
(1)从物理机上获取安装docker时所需要的安装包
docker-ce-18.09.6-3.el7.x86_64.rpm
docker-ce-cli-18.09.6-3.el7.x86_64.rpm
containerd.io-1.2.5-3.1.el7.x86_64.rpm
container-selinux-2.21-1.el7.noarch.rpm
在这里插入图片描述
在这里插入图片描述
(2)启动 docker,设置为开机自启动
systemctl start docker
systemctl enable docker
在这里插入图片描述
管理docker常用的基础命令

docker load -i ubuntu.tar 导入镜像
docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板)
docker ps 查看容器状态
docker ps -a 查看容器状态(包括不活跃的容器)
docker attach vm1 连接容器
docker top vm1 查看容器进程
docker logs vm1 查看容器指令输出 -f 参数可以实时查看
docker inspect vm1 查看容器详情
docker stats vm1 查看容器资源使用率
docker diff vm1 查看容器修改
docker stop vm1 停止容器
docker start vm1 启动容器
docker kill vm1 强制结束容器进程
docker rm vm1 删除容器
docker rmi mirror 删除镜像

删除镜像使用rmi,删除容器使用rm
Docker的应用
实例一:利用容器简单搭建一个2048小游戏
(1)从物理机上获取2048小游戏的镜像tar包到server1
在这里插入图片描述
(2)docker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值