参考文章🎉 Docker 简介和安装 - Docker 快速入门 - 易文档 (easydoc.net)
Docker 官方镜像仓库查找自己所需要的程序(软件) :https://hub.docker.com/
快速构建、运行、管理应用的工具
一、安装docker
参考Install Docker Engine on Ubuntu | Docker Docs
打包、分发、部署
Docker部署的优势:自己在Windows上开发,测试,打包为Docker镜像(可理解为软件安装包)——各种服务器上只需要一个命令部署就好
Docker 通常用来做什么
- 应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用
- 快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK
- 多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0
- Windows 上体验/学习各种 Linux 系统
二、快速入门
1、镜像和容器
docker镜像可以做到忽略操作系统的差异,跨平台运行,忽略安装的差异【可理解为安装包】
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像 (image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔离环境,称为容器(container)
只下载一次镜像,可以启动多次
1、镜像仓库(包含常用软件的各种包以及环境和各种依赖):存储和管理镜像的平台,Docker官方维护了一个公共仓库: Docker Hub Container Image Library | App Containerization
2、命令解读
- Docker run : 创建并运行一个容器, -d 是让容器在后台运行
- --name mysql: 给容器起个名字,必须唯一
- -p 3306:3306: 设置端口映射 (宿主机端口:容器内端口)
- -e KEY=VALUE : 是设置环境变量
- mysql: 指定运行的镜像名字
三、Docker基础知识
Docker最常见的命令就是操作镜像、容器的命令、
四、 制作自己的镜像
1.编写dockerfile文件:
将项目所需要的环境和依赖编写到此文件中
2.build镜像(安装包)和运行
五、目录挂载
现存问题——使用目录挂载解决此问题——当在本地更改代码时,容器中也会相应改变代码
- 使用Docker运行后,改了项目代码不会立刻生效,需要重新build和run,很是麻烦
- 容器里面产生的数据,例如Log文件,数据库备份文件,容器删除后就丢失了
六、多容器通信
七、Docker-Compose
如果项目依赖更多的第三方软件,我们需要管理的容器就更多,每个都需要单独配置运行,指定网络,比较麻烦
解决办法:使用Docker-Compose把项目的多个服务都集合到一起,一键运行
需要写一个yaml文件:将所需的环境都写在里面,然后执行命令docker-compose up 一键启动
八、发布和部署
自己部署的容器发布到Docker镜像中或者创建私有镜像进行存储【例如:阿里云容器托管】