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利用宿主机的操作系统,省略了该步骤。
posted @   LycCj  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示