Hrm-13-----docker
作者:互联网
部署需要三难问题
需要N多服务器
部署过程非常麻烦:编译,测试,打包,发布等等
服务需要动态扩容与缩容
DevOps介绍
DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。DevOps是提高软件开发、测试、运维、运营 等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部 门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。
持续集成-docker镜像(操作系统镜像iso--->安装N多操作系统)
docker容器部署-集装箱是操作(提前已经装好了,只需允许即可)
开发即运维-开发可以做运维事情,开发出来的东西就是要快速部署东西
工具链
Docker简介
虚拟化
将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用
什么是Docker?-容器虚拟化
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
Docker特点
1.上手快
2.职责的逻辑分类
使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。
Docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境一致性。
3.快速高效的开发生命周期
Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作
(通俗一点说,Docker就像一个盒子,里面可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,
而不需要从该盒子中一件件的取。)
4.鼓励使用面向服务的架构
Docker还鼓励面向服务的体系结构和微服务架构
传统操作
开发人员开发代码-打包-装系统-装依赖软件(jdk,tomcat,mysql等)-导入sql,部署项目
部署麻烦
升级麻烦-开发环境部署一致
集装箱操作模式. 开发即部署 (对开发人员要很高.) 运维前置
Docker镜像-模板
镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。例如:
添加一个文件;
执行一个命令;
打开一个窗口。
也可以将镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。
Registry(注册中心)-存放镜像
Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。
Docker公司运营公共的Registry叫做Docker Hub。用户可以在Docker Hub注册账号,
分享并保存自己的镜像(说明:在Docker Hub下载镜像巨慢,可以自己构建私有的Registry)。
Docker容器-跑镜像
Docker可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容器即可。
容器是基于镜像启动起来的,容器中可以运行一个或多个进程
Docker安装与启动
使用yum命令在线安装
yum install docker
查看Docker版本
docker version
启动与停止Docker
systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker帮助文档:docker --help
Docker镜像
配置阿里云镜像加速器
列出docker下的所有镜像:docker images
搜索镜像
docker search 镜像名称
拉取镜像
docker pull centos:7
删除 docker rmi
Docker容器
查看容器-docker ps & docker ps -a(高版本才支持)
启动容器
交互式-退出就停止
docker run -it --name=xxx image /bin/bash
守护式-一直运行
docker run -id --name=xxx image
docker exec -it xxx /bin/bash
停止&启动&删除&查看ip
docker stop 容器名/id
docker start 容器名/id
docker rmi 容器名/id
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2
文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
部署
MySQL部署
拉取MySQL镜像
docker pull mysql:5.7
创建MySQL容器
docker run -di --name hrm_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
端口映射:把容器的端口映射成能够通过宿主机的端口进行访问.
进入MySQL容器,登陆MySQL
docker exec -it hrm_mysql /bin/bash
mysql -u root -p
远程测试
Din35 发布了27 篇原创文章 · 获赞 0 · 访问量 423 私信 关注标签:容器,13,部署,目录,Hrm,镜像,Docker,docker 来源: https://blog.csdn.net/ding35_99/article/details/104618180