首页 > 其他分享 >Docker基础知识点

Docker基础知识点

时间:2023-04-17 19:12:19浏览次数:42  
标签:容器 centos 知识点 虚拟机 基础 镜像 Docker docker

1 . Docker 概述:

1.1 Docker为什么会出现:

问题: 在互联网开发环境当中很多情况会遇到在我的电脑上可以运行但是到你的电脑上就无法运行可,而且在软件版本更新以后会导致服务不可用的情况出现。

解决方式:
发布一个项目:

将一个项目打成jar包时带上Redis,Mysql, jdk, ES等一套环境一起发布部署

特点:(使用Docker后的开发步骤)

java --- jar(环境) ---- 打包项目带上环境(镜像)---- (Docker仓库:商店)----- 运维人员下载我们发布的镜像运行即可!

image-20230416145604275

原始的项目结构存在着端口冲突的问题:

隔离:Docker核心思想!打包装箱!每个箱子是互相隔离的。

重点:

Docker 隔离其实就是保存最原生的东西,最核心的环境,例如一个Linux虚拟几最核心的东西也不是很大

Docker是基于Go语言开发的,是一个开源项目:

官方网站:Docker: Accelerated, Containerized Application Development

官方文档:Docker Docs: How to build, share, and run applications | Docker Documentationimage-20230416151943462

可发布自己的镜像网站:

image-20230416152255457

1.2 Docker能干嘛:

之前虚拟机的缺点:

1.资源占用较多
2.冗余的步骤很多
3.启动很慢

容器化技术:

容器化技术并不是模拟一个完整的操作系统,虚拟机和Docker不同之处:

  • 传统的虚拟机,虚拟机虚拟出一套硬件,运行一个完整的操作系统
  • 容器内的应用直接运行在宿主机的内容,容器没有自己的内核,也没有虚拟机的硬件,所以轻便
  • 每个容器是相互隔离的,每一个容器内部都有一个属于自己的文件系统,互不影响

DevOps(开发 运维)

1.应用更快速的交付以及部署:
    (1)传统的:一堆文档,安装程序
    (2)Docker:打包镜像发布测试,一键运行
2.更便捷的升级和扩缩容:
     使用Docker之后,我们部署应用就和搭积木一样
3.更加简单的系统运维:
      在容器化之后,我们开发,测试环境都是高度的一致
4.更加高效的计算资源的利用:
       Docker是内核级别的虚拟化,可以在一个虚拟机上运行很多的容器实例!服务器的性能可以被压榨
       到极致

2. Docker 安装:

2.1 Docker的基本组成:

image-20230417162129700

Docker 镜像(Images):

Docker 镜像是用于创建 Docker 容器的模板,tomcat镜像—>run—>tomcat001容器(提供服务器)

Docker容器(Container):

容器是独立运行的一个或一组应用,是镜像运行时的实体。

Docker客户端(Client):

Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。

仓库(repository):

仓库就是存放镜像的地方!仓库分为共有镜像和私有镜像(Docker Hub)

2.2 Docker的安装:

环境准备:

1.需要会一点Linux基础
2.centos7
3.会使用Xshell连接远程服务器的操作

环境查看:

[root@iZ2ze6y7ulztxu0enw2s8sZ ~]# uname -r
3.10.0-1160.83.1.el7.x86_64
[root@iZ2ze6y7ulztxu0enw2s8sZ ~]# ^C
[root@iZ2ze6y7ulztxu0enw2s8sZ ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

进行安装:

1.卸载旧的版本:
yum remove docker \
                  docker-client \
                  docker-client-latest\
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2.安装工具包和依赖:
yum install -y yum-utils

image-20230417164932642

3.配置Docker仓库:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

image-20230417165150492

4.更新软件包索引:
yum makecache faster

image-20230417165414588

5.安装最新版本的docker引擎:
yum -y install docker-ce docker-ce-cli containerd.io

image-20230417165843433

6.启动docker:
systemctl start docker
7.设置开机自动启动:
systemctl enable docker
8.测试:
docker run hello-world

image-20230417170128776

2.3 配置阿里云镜像加速:

1.登录阿里云找到容器镜像服务:

image-20230417183506922

2.找到镜像加速地址:

image-20230417183728034

3.配置使用:(Xshell中一步步执行)

在镜像加速器中选择centOS就会看到以下配置:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [xxxxxx]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

执行步骤如下:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [xxxxxx]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

image-20230417184305271

2.4 回顾HelloWorld镜像执行流程:

image-20230417184638656

2.5 Docker的底层原理:

(1)基础性原理:

docker是Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问,DockerServer接收到Docker-Client的指令,就会执行这个命令。

(2)Docker为什么比VM快:
image-20230417185933126

(1)Docker有着比虚拟机更少的抽象层
(2)Docker利用的是宿主机的内核,所以创建一个新的容器时候,docker不需要像虚拟机一样重新加载一个操作系统内核,虚拟机的加载Guest OS,分钟级别的,而docker利用宿主机的操作系统,省略了该步骤。

标签:容器,centos,知识点,虚拟机,基础,镜像,Docker,docker
From: https://www.cnblogs.com/liuyuchengcj/p/17326838.html

相关文章

  • HTML基础
    在发布这条博客之前,我已在B站自学HTML至P110,未以博客形式记录,而是在个人笔记本上记录,所以我对HTML已经有深刻的理解。要让设计者在网络上发布的网页能够被世界各地的浏览器所阅读,需要一种规范化的发布语言。在万维网上,文档的发布语言是HTML(超文本标记语言)。超文本标记语言就是该文......
  • Git基础内容笔记
    Git笔记更多gitlog命令可查看:http://git-scm.com/docs/git-log目录Git笔记Git工作流程一、Git的下载和安装1.1Ubuntu系统下载1.2Windows系统下载1.3设置用户名和邮箱二、基本使用2.1创建仓库gitinitgitclone2.2添加文件2.3提交文件至本地仓库gitadd命令gitcommi......
  • docker Ubuntu 安装教程
    启动docker镜像dockerrun-t-i-dubuntu:18.04/bin/bash配置ustc镜像源sed-i's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g'/etc/apt/sources.listsed-i's/security.ubuntu.com/mirrors.ustc.edu.cn/g'/etc/apt/sources.listapt-getcleanap......
  • 机器学习-模型评价基础概念
    1:训练集、测试集及其函数分割;2:准确率、召回率;3:交叉验证;4:混淆矩阵;(1)介绍TP、FN、TN、FP、TPR、FPR等概念:https://zhuanlan.zhihu.com/p/3639240815:ROC曲线、AUC曲线;(1)ROC、AUC曲线讲解https://www.bilibili.com/video/BV1SK4y1K7v3/?spm_id_from=333.999.0.0......
  • Docker基础命令及面试问题
    Docker包括三个基本概念:镜像(Image):Docker镜像(Image),就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定......
  • 连接MongoDB+Docker安装MongoDB
    一、连接MongoDB工具:studio3T下载:https://studio3t.com/download-thank-you/?OS=win641、无设置密码最终成功页面2、设置了密码后续同1二、安装MongoDB版本:5.0.5参考:https://www.cnblogs.com/cwp-bg/p/10403327.htmlhttps://blog.csdn.net/weixin_4......
  • 记录-js基础练习题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助隔行换色(%):window.onload=function(){varaLi=document.getElementsByTagName('li');for(vari=0;i<aLi.length;i++){if(i%2==1){ aLi[i].style.background='#bfa';......
  • ansible的docker_container模块使用
    使用docker_container模块创建容器示例:----hosts:myserveripremote_user:root#执行用户gather_facts:false#屏蔽系统信息返回vars:ansible_python_interpreter:/usr/bin/python3#定义ansible使用python3的环境serial:"100%"#更新比列,可以......
  • k8s 工作原理以及常用基础
    k8s是什么☛可移植:支持公有云,私有云,混合云,多重云☛可扩展:模块化,插件化,可挂载,可组合☛自动化:自动部署,自动重启,自动复制,自动伸缩/扩展k8s核实组件1)主要组件●etcd:保存了整个集群的状态;●apiserver:提供了资源操作的唯一入口,并提供访问控制、API注册和发现等机制......
  • Dockerfile详细使用、docker私有仓库、dockercompose介绍、dockerpose部署flask+redis
    昨日内容#1容器其他操作1dockerstart容器id2dockerstop容器id3dockerrm容器id4dockerrm`dockerps-aq`#正在运行的容器不能删除5dockerexec容器id命令6dockercp宿主机目录容器id:容器目录#目录要存在7docker......