docker基础架构图
Docker简介
为什么使用Docker
企业环境中存在的某个痛点
- 软件更新发布及部署低效,过程烦琐且需要人工介入。
- 环境一致性难以保证。
- 不同环境之间迁移成本太高。
Docker能解决的问题
- 首先,Docker 的使用十分简单,从开发的角度来看就是“三步走”:构建、运输、运行。其中,关键步骤是构建环节,即打包镜像文件。但是从测试和远维的角度来看,那就只有两步:复制、运行。有了这个镜像文件,想复制到哪里运行都可以,完全和平台无关。
- Docker 这种容器技术隔离出了独立的运行空间,不会和其他应用争用系统资源,不需要考虑应用之间的相互彤
- 其次,因为在构建镜像时就处理完了服务程序对于系统的所有依赖,所以在使用时,可以忽路原本程序的依赖以及开发语言,对测过和运维人员而言,可以更专注于自己的业务内容,
- 最后,Docker 为开发者提供了一种开发环境的管理办法,帮助测试人员保证环境的同步,为运维人员提供了可移 植的标准化部罟流程。
CI/CD 与Devops
基本概念
- CI(Continuous Integration): 持续集成; CD(Continuous Deployment): 持续交付和持续部署
- DevOps: (Devlelopment & Operations) 开发运维
CI/CD步骤图解
-
步骤图解
-
步骤中所涉及的服务
-
1.源代码管理: github/gitlab...
-
2.编译构建自动化测试: Jenkins/gitlab...
-
3.自动话发布之镜像管理: nexus/docker...
-
4.自动部署: 阿里云、腾讯云...
docker 概念
- 虚拟化架构工具
- 简单概括:build -> share -> run
- 与虚拟机类似,但比虚拟机更加
高效、稳定、节省空间
核心概念
- Image: 镜像
- Container: 容器
- Repository: 仓库
Image 与 Container
-
hub.docker.com: Contanier和Images的库
-
docker可以使用dockerfile文件来自定义镜像的配置
Docker 小试
Portainer
Portainer(具有可视化操作的Docker界面,需要写命令行)
- 安装: Portainer
//创建一个硬盘名字叫portainer_data
docker volume create portainer_data
//docker启动:
docker run -d -p 9000:9000 -v portainer_data:/data portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete
49d59ee0881a: Pull complete
c71f4038b17b: Pull complete
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
e53a655712e637e527af7715e11c08dde702baa6aec93c0d64b0293b82638edd
- run会判断本地有没有镜像,没有就会启动一个
- -d 后台运行方式
- -p 端口(暴露9000端口到外部)
//启动后查看
~ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e53a655712e6 portainer/portainer "/portainer" 4 minutes ago Up 4 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp silly_gagarin
- 在浏览器中打开 localhost:9000 即可进入 portainer 管理界面
安装 MongoDB
- DockerHUB-> mongo hub.docker.com/search?q=mo…
- 使用
docker run --name some-mongo -d portainer/portainer
docker container ls -a //列出所有的cantainer
docker start e53a655712e6 //e53a655712e6 cantainer安装之后的id
安装MySQL
- DockerHUB-> MySQL hub.docker.com/_/mysql
- 使用
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
docker container ls -a //列出所有的cantainer
docker start e53a655712e6 //e53a655712e6 cantainer安装之后的id
docker images //列出所有的镜像本地镜像