基于《狂神说Java》Docker--学习笔记

前言:

本笔记仅做学习与复习使用,不存在刻意抄袭。参考于学友小瓦匠学编程

给各位学友强烈推荐《遇见狂神说》他的整套Java学习路线使我获益匪浅!!!

点击跳转至遇见狂神说哔哩哔哩首页

如果你也是狂神的小迷弟,可以加我好友一起探讨学习。


目录

前言:

Docker入门

Docker为什么会出现

 Docker的历史

 Docker最新超详细版教程通俗易懂

 虚拟化技术和容器化技术对比

虚拟化技术的缺点

容器化技术 

Docker容器化带来的好处

Docker的基本组成部分

安装Docker环境

Docker 配置阿里云镜像加速

Docker常用命令汇总

基础命令

镜像命令

容器命令

其他常用命令

操作命令小结

Docker数据卷技术

为什么需要数据卷?什么是数据卷?

使用数据卷

匿名挂载和具名挂载

只读和可读可写权限

多个容器间数据如何同步?

数据卷小结

Dockerfile

什么是Dockerfile?

Dockerfile的基本语法

通过 Dockerfile 构建 Docker 镜像的步骤

Dockerfile的指令

发布自己的镜像

Dockerfile小结

Docker网络原理

Docker的网络模式

理解Docker网络(docker0)

容器互联

Docker Compose

Docker Compose是什么?

安装 Docker Compose

Docker Compose 常用命令

Docker Compose 配置编写规则

使用 Docker Compose 一键部署WordPress博客


Docker入门

Docker为什么会出现

在这里插入图片描述

在这里插入图片描述

 Docker的历史

在这里插入图片描述

 Docker最新超详细版教程通俗易懂

在这里插入图片描述

 虚拟化技术和容器化技术对比

虚拟化技术的缺点

  • 资源占用十分多
  • 冗余步骤多
  • 启动很慢

在这里插入图片描述

容器化技术 

在这里插入图片描述

  • 比较Docker和虚拟化技术的不同
    • 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
    • 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
    • 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
  • 应用更快速的交互和部署
    • 传统:一堆帮助文档,安装程序
    • Docker: 打包镜像发布测试,一键运行
  • 更便捷的升级和扩缩容
  • 更简的系统运维
  • 更高效的计算资源利用

Docker容器化带来的好处

DevOps思想:它涵盖开发、测试、运维的整个过程,其核心就是流程的统一和自动化。

  1. 系统应用可以更快速的交付和部署
    传统方式:部署前需要写一堆的文档,安装程序;使用Docker:打包镜像发布,一键运行
  2. 更便捷的升级和扩容
    使用Docker后,我们部署系统应用就像搭积木一样。项目打包为一个镜像,在服务器A部署后,一键扩容到服务器B
  3. 更简单的系统运维
    在容器化以后,我们的开发、测试环境可以做到高度一致。
  4. 更高效的计算资源利用
    Docker 是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致。

Docker的基本组成部分

镜像(Image): Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。一个镜像可以创建多个容器。比如,Tomcat镜像 ===> Run ===> Tomcat容器(可以提供服务)

容器(Containers): Docker利用容器技术,可以独立运行一个或一组应用,它是通过镜像来创建的。我们可以把容器理解为就是一个微型的Linux系统。它包括启动、停止、删除等基本命令。

仓库(Repository): 就是存放镜像的地方,一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。官方默认的Registry是 Docker Hub,在国内使用时一般需要配置镜像加速。

安装Docker环境

注意:在CentOS系统上安装Docker引擎时,要求操作系统是CentOS 7以上版本。可以通过如下命令查看系统内核与系统版本。

# 系统内核版本
[root@localhost ~]# uname -r 
# 查看系统版本
[root@localhost ~]# cat /etc/os-release 

卸载旧版本
如果安装了这些,请卸载它们以及相关的依赖项

[root@localhost ~]# yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

添加Docker的yum源信息

# 安装 yum-utils
[root@localhost ~]# yum install -y yum-utils
# (推荐)使用阿里云的软件源地址
[root@localhost ~]# yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# (不推荐)国外地址
[root@localhost ~]# yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

yum-utils 提供了 yum-config-manager 的实用程序

安装前建议更新 yum 软件包索引

[root@localhost ~]# yum makecache fast

该操作的目的就是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。如果觉得 yum 下载的软件包占用磁盘空间,可以使用 yum clean [all / 软件包] 指令清除缓存。

安装docker相关的配置

[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io

docker-ce 是社区版,docker-ee 企业版

启动 Docker 并设置开机启动

# 启动 Docker
[root@localhost ~]# systemctl start docker 
# 查看当前版本号,是否启动成功 
[root@localhost ~]# docker version 
# 设置开机自启动 
[root@localhost ~]# systemctl enable docker

运行 hello-world 看看效果

# 运行hello-world
[root@localhost ~]# docker run hello-world
# 查看下载的 hello-world 镜像
[root@localhost ~]# docker images

Docker卸载

# 1. 卸载依赖 
[root@localhost ~]# yum remove docker-ce docker-ce-cli containerd.io 
# 2. 删除资源  /var/lib/docker 是 Docker 的默认工作路径
[root@localhost ~]# rm -rf /var/lib/docker

Docker官方的安装文档也比较详细,有需要的小伙伴可以查阅 官方安装文档(CentOS)

Docker 配置阿里云镜像加速

使用加速器可以提升获取Docker官方镜像的速度,在不同的操作系统下,配置加速器的方式略有不同,下文将介绍主要操作系统的配置方法。

  • 获取加速器的地址

您登录容器镜像服务控制台后,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面就会显示为您独立分配的加速器地址。

例如:
加速器地址:[系统分配前缀].mirror.aliyuncs.com

  • 配置加速器

当您安装的Docker Version不低于1.10时,建议直接通过daemon config进行配置。使用配置文件 /etc/docker/daemon.json (没有时新建该文件)。

{
     "registry-mirrors": ["<your accelerate address>"]
}    

  • 重启Docker Daemon即可
[root@localhost ~]# sudo systemctl daemon-reload 
[root@localhost ~]# sudo systemctl restart docker

阿里云官方也提供了更加详细的说明文档,有需要的小伙伴可以查阅 阿里云官方帮助文档

Docker常用命令汇总

Docker是一个 Client - Server 结构的系统,因此它提供了在客户端 - 服务器环境中进行交互和工作的命令。在这里,我们列出了一些重要和常用的 Docker 命令进行学习。

基础命令

 1.查看Docker的版本信

[root@localhost ~]# docker version

2.查看Docker的系统信息,包括镜像和容器的数量

[root@localhost ~]# docker info

3.帮助命令(可查看可选的参数)

root@localhost ~]# docker 命令 --help

镜像命令

docker images 查看本地主机的所有镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   2 months ago   13.3kB

# 可选参数
-a,--all       # 列出所有镜像
-q,--quiet     # 只显示镜像的id

docker search 搜索镜像

搜索镜像时建议优先使用 官网镜像仓库 ,那里有完善的文档信息。

[root@localhost ~]# docker search mysql          
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11833     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4505      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   887                  [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   92                   
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   90                   

# 可选参数
  -f, --filter filter   # 根据所提供的条件过滤输出 如:docker search mysql --filter STARS=5000
      --format string   # 输出打印模板,如:docker search --format "{
  {.Name}}: {
  {.StarCount}}" nginx
      --limit int       # 最大搜索结果数(默认为25)
      --no-trunc        # 不截断输出

docker pull 镜像名[:tag] 下载镜像

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值