docker安装和基本操作

docker 专栏收录该内容
1 篇文章 0 订阅


一、docker概述

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。
Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。

Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。
是一个开源的应用容器引擎,让开发者可以打包方式封装应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的inux或者windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制(隔离机制),相互之间不会有任何接口

沙箱(sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制
Docker在2013年一炮而红,直到现在,已经成为容器技术的代名词。
Docker从一开始就以提供标准化的运行时环境为目标,真正做到"build once, run anywhere",可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦(不吃操作系统))。在此基础上.还进一步发展出了caas(容器即服务)技术。

容器与虚拟机区别

特性Docker容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗 50%左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源隔离/限制完全隔离

容器的底层原理

docker是一种容器技术,把linux的cgroup、namespaces等容器底层技术进行完美的封装、并抽象为用户提供创建和管理容器的便捷界面

容器隔离的六个名称空间

cgroup资源控制与namespaces 结合控制管理了6个名称空间资源

mount 文件系统,挂载点
一个文件系统内,不能重复挂载一个指定目录,例如:/mnt
user 操作进程的用户和用户组
pid 进程编号
uts 主机名和主机域
ipc 信号量、消息队列,共享内存(理解,不同的应用调用内存资源的时候应该使用不同的内存空间)
net 网络设备、网络协议栈、端口等

docker和虚拟化相比有什么优势

docker把容器化技术做成了标准化平台cAAs (docker 统一/指定了容器化技术的标准化平台

使用docker有什么意义?
docker引擎统一了基础设施环境-docker环境
docker引擎统一了程序打包(装箱/封装-类比于集装箱)方式
docker引擎统一了程序部署(运行)方式
实现了一次构建、多次、多处使用

docker三要素

镜像

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。

通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。

容器

Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。

可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker 目录下。

docker架构

Docker使用客户端-服务器架构。Docker客户端与Uocker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker区别于传统的虚拟化,不需要虚拟硬件资源,直接使用容器引擎,所以速度快

Docker Client:客户端/提供一个与用户交互,展示的平台。用来管理、控制docker服务端(功能)的工具

Docker客户端:是许多Docker用户与pocker交互的主要方式。当您使用诸如docker run之类的命令时,客户端会将这些命令发送到dockerd,以执行这些命令。该docker命令使用nocker API。Docker客户端可以与多个守护程序通信。(Docker daemon:守护进程)

Docker守护程序(dockerd)用来监听Docker API请求并管理pocker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。

二、基础操作

安装依赖环境

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

设置阿里云镜像源

[root@docker ~]# cd /etc/yum.repos.d/
[root@docker yum.repos.d]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

[root@docker yum.repos.d]# yum install -y docker-ce

启动docker

[root@docker yum.repos.d]# systemctl start docker.service
[root@docker yum.repos.d]# systemctl enable docker.service

查看docker版本

[root@docker yum.repos.d]# docker version
[root@docker yum.repos.d]# docker info

设置镜像加速

镜像加速注册地址
https://help.aliyun.com/document_detail/60750.html

[root@docker yum.repos.d]# mkdir -p /etc/docker
[root@docker yum.repos.d]# tee /etc/docker/daemon.json <<-'EOF'> {
>   "registry-mirrors": ["https://mst4fcpe.mirror.aliyuncs.com"]
> }
> EOF
[root@docker yum.repos.d]# systemctl daemon-reload
[root@docker yum.repos.d]# systemctl restart docker

网络优化

[root@docker yum.repos.d]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@docker yum.repos.d]# sysctl -p
[root@docker yum.repos.d]# systemctl restart network
[root@docker yum.repos.d]# systemcti restart docker 

docker 镜像操作

docker run

[root@docker docker]# docker run hello-world

在这里插入图片描述
run指令运行
①检测本地有没有该镜像(没有的话直接到docker hub上下载)
②create(将镜像创建为容器)+ start 将创建好的容器运行起来

工作流程

在这里插入图片描述
1、docker client客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的)restful api典型的c/s架构
2、由docker服务端的守护进程从docker hub 上下载了镜像(Ps:服务端会先检查本地系统是否有这个镜像)
3、服务端创建了一个新的容器,然后从拉去的这个镜像启动了一个容器,容器执行了脚本/可执行程序让我们可以查看/使用(client)
4、docker 服务端把这些信息流(传递)返回到客户端并展示出来,(展示在终端上)

下载镜像

[root@docker yum.repos.d]# docker pull nginx 
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

wuweide_123

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值