你必须要知道的Docker知识(超详细)

1Docker技术简介

1.1概述

        Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。

        基于这种方式,可更快地打包、测试以及部署应用程序。

         现阶段,很多应用软件的安装都在向基于docker方式的安装进行实现。例如mysql,那么为什么不直接在操作系统中安装一个mysql,而是用容器呢?因为,安装MySql过程并不简单,要配置安装源,安装依赖包,对mysql进行配置…如果要在多台主机上安装,每台主机都要进行这些繁琐的操作,万一服务器挂了,这一系列操作还要再重来一遍,但有了docker,一个安装配置好的mysql容器,可以直接拿到另一台主机上启动,而不必重新安装mysql。另外,docker还有一重要的用处,就是可以保证开发,测试和生产环境的一致.

1.2Docker核心对象 

1.2.1镜像(Image)

        Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等,可以暂时先将其理解为一个安装程序。

1.2.2容器(Container) 

        Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。
 

2Docker应用架构分析 

架构图

 

其中:

  • Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
  • Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
  • Docker Daemon是docker的服务线程,处理Docker客户端命令。
  • Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。

 2.1Docker运行机制

docker pull 执行过程:

1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

    docker run 执行过程:

  1.     检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2.     利用镜像创建并启动一个容器
  3.     分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
  4.     从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5.     从地址池配置一个 ip 地址给容器
  6.     执行用户指定的应用程序

3Docker安装

事先准备一个虚拟机,可以下载下面这个,基于vmvare工具打开CentOS:

百度网盘下载 提取码6666

登录账号:root  密码:root

如果已经安装了Docker,可通过以下命令卸载

sudo yum remove docker-ce \
                docker-ce-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

第一步:安装一组工具

sudo yum install -y yum-utils 

第二步:设置 yum 仓库地址

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 

第三步:更新 yum 缓存

sudo yum makecache fast         

yum 是包管理器

第四步:安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

 安装成功后,会出现如下信息:

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker 20.10.6 install success!

4Docker基本操作

4.1启动docker服务

 systemctl start docker

4.2查看docker状态

systemctl status docker

4.3查看docker信息 

docker info

4.5停止docker服务 

 systemctl stop docker

4.6docker镜像加速

 由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json

 下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

说明:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务. 

5Docker镜像操作 

5.1下载镜像

语法:docker pull 镜像名

5.2浏览文件 

docker images

5.3查看镜像详情

 语法:docker inspect 镜像名或镜像id

 5.4导出镜像文件

docker save  hello-world | gzip > hello-world.tar.gz  

5.5删除镜像文件 

 语法:docker image rm 镜像名或镜像id

5.6导入镜像 

 docker load < hello-world.tar.gz  

 5.7运行镜像文件

 docker run hello-world

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值