ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hrm-13-----docker

2020-03-02 20:36:02  阅读:215  来源: 互联网

标签:容器 13 部署 目录 Hrm 镜像 Docker 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有