1.Docker概述

1.1Docker为什么出现

产品从开发到上线,是两个环境,所以开发人员也需要会运维的知识
环境配置十分麻烦,每一个机器都要部署环境,费时费力
发布一个项目(jar,war+(redis mysql jdk es)),项目能不能带上环境安装打包
开发,打包,部署,上线,一套流程。

Docker给以上问题提出了解决方案,

1.2Docker的核心思想

  1. 打包,装箱,隔离机制,将服务器运用到极致

1.3Docker的历史

2010年,在美国成立了dotcloud,做一些pass的云计算服务!跟linux有关的容器技术
2013年,docker进行了开源

1.4Docker能干嘛

传统的虚拟机的技术
image.png
虚拟机技术的缺点:
1、资源占用十分多
2、冗余步骤多
3、启动很慢

现在的容器化技术:
image.png
每个程序与环境都进行隔离,模拟的并不是一个完整的操作系统,只需要他的核心
比较Docker和传统的虚拟机技术的不同:
传统的虚拟机,虚拟出硬件,运行一个完整的操作系统,然后再这个系统桑安装和运行软件
容器内的应用直接运行在宿主机的内容,容器时没有自己的内核的,在没有虚拟硬件,所以非常轻便
每个容器间是互相隔离的,每个容器都有一个属于自己的文件系统,互不影响

1.5 DevOps(开发、运维)

1.5.1应用更快速的交付和部署

传统:一堆帮助文件,安装程序
Docker:打包镜像发布测试,一件运行

1.5.2更便捷的升级和扩缩容:

使用了Docker之后,部署应用就像搭积木一样
项目打包为一个镜像,扩展服务器A,在服务器B上直接运行这个镜像

1.5.3更简单的运维系统:

开发和测试以及生产环境,高度一致

1.5.4更高效的资源利用:

Docker是内核级的虚拟化,可以在一个物理机上运行许多实例

2.Docker安装

2.1Docker的基本结构

image.png
docker客户端,主机,远程仓库
镜像(imager):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==》run==》tomcat01容器(提供服务),通过这个镜像可以创建多个容器
容器(Containers):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建。
启动,停止,删除,基本命令
目前就可以把这个容器理解为就是一个建议的linux系统
仓库(Registry):
仓库就是存放镜像的地方
仓库分为公有和私有
Docker Hub
阿里云,华为云,腾讯云(配置镜像加速)等等

2.2环境确认

  1. # 系统内核是3.10以上
  2. # uname -r
  3. 3.10.0-1160.45.1.el7.x86_64
  4. # 当前系统信息
  5. [root@VM-16-16-centos /]# cat /etc/os-release
  6. NAME="CentOS Linux"
  7. VERSION="7 (Core)"
  8. ID="centos"
  9. ID_LIKE="rhel fedora"
  10. VERSION_ID="7"
  11. PRETTY_NAME="CentOS Linux 7 (Core)"
  12. ANSI_COLOR="0;31"
  13. CPE_NAME="cpe:/o:centos:centos:7"
  14. HOME_URL="https://www.centos.org/"
  15. BUG_REPORT_URL="https://bugs.centos.org/"
  16. CENTOS_MANTISBT_PROJECT="CentOS-7"
  17. CENTOS_MANTISBT_PROJECT_VERSION="7"
  18. REDHAT_SUPPORT_PRODUCT="centos"
  19. REDHAT_SUPPORT_PRODUCT_VERSION="7"

2.3开始安装

  1. # 1、卸载老版本docker
  2. yum remove docker \
  3. docker-client \
  4. docker-client-latest \
  5. docker-common \
  6. docker-latest \
  7. docker-latest-logrotate \
  8. docker-logrotate \
  9. docker-engine
  10. # 2、需要的安装包
  11. yum install -y yum-utils
  12. #3、设置镜像仓库
  13. yum-config-manager \
  14. --add-repo \
  15. https://download.docker.com/linux/centos/docker-ce.repo
  16. 下载默认是从国外下载,非常慢
  17. http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  18. # 阿里云镜像
  19. #4、 更新yum 索引
  20. yum makecache fast
  21. #5、安装docker ce社区版 ee企业版
  22. yum install docker-ce docker-ce-cli containerd.io
  23. #6、启动docker服务
  24. systemctl start docker
  25. #7、测试是否安装成功
  26. docker version
  27. # 卸载docker
  28. yum remove docker-ce docker-ce-cli containerd.io
  29. rm -rf /var/lib/docker

image.png
查看所有的镜像
image.png

3.Docker命令

3.1镜像命令

  1. docker version #显示docker的详细信息
  2. docker info #显示docker的系统信息,包括镜像和容器数量
  3. docker --help #帮助命令

帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/

  1. docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. hello-world latest feb5d9fea6a5 3 months ago 13.3kB
  4. # 解释
  5. REPOSITORY 镜像的仓库源
  6. TAG 镜像标签
  7. IMAGE ID 镜像id
  8. CREATED 创建时间
  9. SIZE 镜像大小
  10. 可选项
  11. Options:
  12. -a, --all Show all images (default hides intermediate images)
  13. --digests Show digests
  14. -f, --filter filter Filter output based on conditions provided
  15. --format string Pretty-print images using a Go template
  16. --no-trunc Don't truncate output
  17. -q, --quiet Only show image IDs

3.2容器命令

3.3操作命令

4.Docker镜像

5.容器数据卷

6.DockerFile

7.Docker网络原理

8.IDEA整合Docker

9.Docker Complse

10.Docker Swarm

11.CI/CD 持续交互,持续部署 jenkins