深入浅出 Docker
一、什么Docker
- 从作用的角度:
Docker是一个为开发人员和系统管理员开发、迁移和运行应用程序的平台。应用程序通过Docker打包成Docker Image后,可以实现统一的方式来下载、启动、扩展、删除和迁移,这样方便了应用程序的部署和运维。
- 从实现的角度(与虚拟机相比):
- 相同:虚拟机与容器都能够虚拟化计算机资源从而提高资源利用率,实现应用隔离与资源独立。
2. 容器和虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。
[对于java开发,要想实现程序的打包和迁徙,我们现有的模式是在一个服务器上安装统一一个jdk,运行多个tomcat,每个tomcat里面一个java应用,大家也知道tomcat不用安装,当我们项目要迁徙的时候也只需要把整个tomcat打包然后在另一台服务器上解压就ok了,也很简单]
每台虚拟机都能够获得唯一的操作系统和负载(应用程序),每个容器化应用都会共享相同的操作系统(单个主机操作系统)
相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。云提供商十分热衷于容器技术,因为在相同的硬件设备当中,可以部署数量更多的容器实例 。
二、基于docker的wordpress博客搭建 小例子
- 一、 项目介绍
1、简介
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
本项目使用Docker搭建了一个WordPress应用,基础架构包含一个Nginx服务器来路由/代理请求、WordPress应用服务器 来部署应用以及MySQL数据库来提供存储。
本项目的搭建环境使用腾讯云平台的云服务器,系统版本为ubuntu 64位。
2、架构
构建一个简单的基础框架,其上运行一个WordPress的自包含实 例,WordPress是被全世界很多公司和作家使用的流行博客工具。这个基础架构包含一个Nginx服务器来路由/代理请求,WordPress应用服 务器来部署应用以及MySQL数据库来提供存储。最终的架构类似于:
- 二、 实施过程
1、安装虚拟机和ubuntu系统
下载VMware Workstation Pro安装,新建虚拟机并安装ubuntu系统。
进入terminal并获得root权限。
2、安装docker环境
使用百度的命令进行软件安装。
3、查看docker信息
通过docker info 命令可以查看当前docker的运行信息。
(提示:Cannot connect to the Docker daemon. Is the docker daemon running on this host?
可以使用serivce docker start来启动docker服务。)
4、配置docker加速器
由于docker自带的镜像源在国外,下载镜像的速度不理想。所以可以使用国内的镜像源进行加速,如daocloud的仓库。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://acef54a4.m.daocloud.io
5、创建数据库容器
容器名为wordpress-db, 同时设置数据库密码。
docker run --name wordpress-db -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
参数的含义如下:
-name表示分配给新容器的名字(或者标签)
-e设置容器的环境变量,指定MySQL实例的密码,已有配置文档可以在MySQL Docker Hub中找到。
-d指定Docker在后台运行容器。
6、创建wordpress容器
docker run --name wordpress-app --link wordpress-db:mysql -d wordpress
-link wordpress-db:mysql这个参数告诉Docker创建网络连接到wordpress-db容器(之前创建出来的),使得两个容器间能够网络通信。
查看容器的状态
docker ps
进入wordpress中使用ping命令,确认wordpress已经连接上数据库。
docker exec -i -t wordpress-app bash
ping mysql
7、安装配置nginx容器
使用nginx作为web访问的代理,配置文件。
cd /usr/local //进入该目录
mkdir wordpress-nginx //定义名为wordpress-nginx子目录
cd /usr/local/wordpress-nginx .//进入该目录
vi default.conf //定义名为default.conf文件
#Default.conf 这是nginx的配置文件
server {
listen 80;
server_name localhost;
error_log /var/log/nginx/error.log warn;
location / {
proxy_pass http://wordpress-app:80/;
proxy_redirect http://server_name http://wordpress-app:80/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
使用Dockerfile来安装nginx
vi Dockerfile
# this is Dockerfile Infomation
FROM nginx
COPY default.conf /etc/nginx/conf.d/default.conf
接着
安装nginx并启动
docker build -t wordpress-nginx .
docker run -d --name=wordpress-nginx --link=wordpress-app:wordpress-app -p 80:80 wordpress-nginx
指定了参数-p 80:80,这是告诉Docker暴露容器的80端口,这样可以从Docker的宿主机器外部访问该容器。
docker ps
我们指定了参数-p 80:80,这是告诉Docker暴露容器的80端口,这样可以从Docker的宿主机器外部访问该容器。
8、web浏览器访问并安装
- 三、 项目总结
通过本次项目实践,对Linux中Docker技术有了初步的认知,实施过程中出现了一系列问题包括虚拟机操作系统安装失败,用vi命令新建文件时命令不会使用,按照阿里云安装文档安装docker加速器时失败等等等,不过通过上网搜索资料,询问同学等方式解决了,特别感谢林辉同学的指导。
整个环境的搭建用了两天左右的时间,对我们严谨科研态度和团队协作能力的培养有了很大帮助,另外对于虚拟机、linux系统、docker技术实现应用隔离与资源独立的优点等知识点都有了初步认识,对后续的深入学习具有很大的帮助。
转载于:https://www.cnblogs.com/simpleDi/p/6024901.html
深入浅出 Docker相关推荐
- 深入浅出Docker(一):Docker核心技术预览
[编者按]Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种 ...
- 深入浅出Docker(六):像谷歌一样部署你的应用
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- 深入浅出Docker(五):基于Fig搭建开发环境
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- 深入浅出Docker(四):Docker的集成测试部署之道
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- 深入浅出Docker(二):Docker命令行探秘
本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...
- 《深入浅出Docker》学习笔记
<深入浅出Docker>学习笔记 第三章:docker 安装 linux服务器安装:-略 windows服务器安装:-略 确认安装结果 docker --version 第四章:纵观DOc ...
- 深入浅出Docker原理及实战(三)——制作Dockerfile
声明:这是我在大学毕业后进入第一家互联网公司学习的内容 深入浅出Docker原理及实战系列第三篇,我主要分享如何制作一个Dockerfile,以及基本命令格式. Dockerfile简介 Docker ...
- php solr docker搭建,深入浅出Docker技术- 基于Docker Solr集群的搭建
Posted on 6月 2, 2018 深入浅出Docker技术- 基于Docker Solr集群的搭建 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,是正在开发中的Solr ...
- docker $PWD路径_深入浅出Docker 镜像
技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作为云计算的当红明星Docker 来势汹汹,它就像一场森林大火,烧到了我们中间.因为工作的原因, ...
- docker tag 删除images_深入浅出 Docker (二) —— Docker的基本概念和架构原理
1. Docker 的基本概念 Docker 有三个基本概念: 镜像(Image) 容器(Container) 仓库(Repository) 1.1 镜像(Image) 操作系统分为内核和用户空间.对 ...
最新文章
- 大数据可以帮助企业获得资金吗?
- MySQL存储过程详解 mysql 存储过程
- 产品经理的思考利器——UML
- C#开发人员应该知道的13件事情
- android 支付宝和微信支付封装,Android支付宝和微信支付集成
- 隐藏在计算机网卡怎样删除,如何卸载电脑中隐藏的虚拟网卡设备
- 前端学习(2610):vuex实现删除
- mysql_install_db参数_MySQL初始化脚本mysql_install_db使用简介及选项参数
- Oracle中shrink space命令详解
- 【PostgreSQL-9.6.3】表空间
- 看完这一篇,解决Mac电脑90%的软件烦恼
- 基于点云的骨骼感知三维人体形状重建
- 免费搭建一个云音乐网站
- PAT乙级刷题感想及踩坑总结
- socket 服务器端和客户端通信,面向TCP的
- 利用python爬取数据并保存到MySQL中
- 程序员转行去做售前、咨询
- #深度解析# SSR,MSE,RMSE,MAE、SSR、SST、R-squared、Adjusted R-squared误差的区别
- 基于Tushare的上证综指行情分析与影响其涨跌的因素(以美债为例)
- 颜色英文单词总汇(申明:来自于360)