前言:
本笔记仅做学习与复习使用,不存在刻意抄袭。参考于学友小瓦匠学编程。
给各位学友强烈推荐《遇见狂神说》他的整套Java学习路线使我获益匪浅!!!
如果你也是狂神的小迷弟,可以加我好友一起探讨学习。
目录
使用 Docker Compose 一键部署WordPress博客
Docker入门
Docker为什么会出现
Docker的历史
Docker最新超详细版教程通俗易懂
虚拟化技术和容器化技术对比
虚拟化技术的缺点
- 资源占用十分多
- 冗余步骤多
- 启动很慢
容器化技术
- 比较Docker和虚拟化技术的不同
- 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
- 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
- 应用更快速的交互和部署
- 传统:一堆帮助文档,安装程序
- Docker: 打包镜像发布测试,一键运行
- 更便捷的升级和扩缩容
- 更简的系统运维
- 更高效的计算资源利用
Docker容器化带来的好处
DevOps思想:它涵盖开发、测试、运维的整个过程,其核心就是流程的统一和自动化。
- 系统应用可以更快速的交付和部署
传统方式:部署前需要写一堆的文档,安装程序;使用Docker:打包镜像发布,一键运行 - 更便捷的升级和扩容
使用Docker后,我们部署系统应用就像搭积木一样。项目打包为一个镜像,在服务器A部署后,一键扩容到服务器B - 更简单的系统运维
在容器化以后,我们的开发、测试环境可以做到高度一致。 - 更高效的计算资源利用
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]
下载镜像