为什么javaer也需要学习docker

                                                      为什么javaer也需要学习docker

今天第一次安装nginx。百度了下,gcc g++,make,pcre, zlib......一个nginx安装,多个依赖,中间出错还非常麻烦。当然可以使用yum,但是版本可能不对。于是决定使用docker安装

docker run -p 80:80 -p 443:443 --name nginx -d nginx:1.13

浏览器访问:localhost:80


为什么javaer也需要学习docker_第1张图片

搞定,我可以开始学习nginx啦。当然实际使用会将配置文件挂载出去。

那么我把这个nginx玩坏了怎么办?卸载它,


我的电脑干净了,没有gcc,没有pcre,没有zlib...

另外最关键的是:


一个容器的启动,都是几秒之内。关闭,删除,重启都是。极短的时间降低了学习成本,容器的封闭使得系统比较干净。

前段时间,公司的测试环境数据库服务器迁移。因为使用了docker部署mysql。于是执行下列操作:

[if !supportLists]1.[endif]tar -czvfmysql.tar.gz

[if !supportLists]2.[endif]将tar包传输至指定的服务器

[if !supportLists]3.[endif]tar -xzvf mysql.tar.gz

[if !supportLists]4.[endif]docker run -d -e MYSQL_ROOT_PASSWORD=passwd  --name mysql -v /etc/localtime:/etc/localtime -v $(pwd)/my.cnf:/etc/mysql/my.cnf -v $(pwd)/data:/data  --env TZ="Asia/Shanghai"   -p 3306:3306 mysql:5.7

完成了,mysql版本,配置,数据完全一致,不需要运维的小伙伴特意抽出时间帮忙。我们只需要把访问的ip换一下就完事了,消耗几十分钟,大部分在数据传输上面。

同样,我们学习mysql是不是也可以通过docker安装呢。还可以给每个小伙伴单开一个mysql:


每个小伙伴可以使用不同版本的mysql。当我们觉得程序出问题可能是jdk或者tomcat版本的问题,最简单的就是在docker容器里面跑一下。想测试不同版本怎么办,开个容器就是了,一秒钟就搞定了。

另外,换电脑需要配置各种环境怎么办?现在有了更好的解决方案。通过docker compose的YAML模版文件,一键部署多个容器。非常方便换电脑或者服务器。

举上面的小例子,只是想说docker作为一个工具对于非运维人员也有很大帮助,并且随着使用容器技术的公司越来越多,不会docker会比较麻烦。万一你的公司使用jenkins+docker部署,运维不在,你知道怎么查询日志吗?

接下来简单介绍下docker,另外对于javaer来说,学习docker的成本真的非常非常的低。

首先,docker三个基本概念。

镜像(Image)

容器(Container)

仓库(Repository)

镜像,可以类比成虚拟机使用的iso文件。虚拟机使用iso去创建虚拟机。Docker使用镜像去创建容器。那么镜像从哪里来呢?仓库。默认的仓库是dockerhub,这个比较慢。一般会配置成阿里云的仓库来提速,或者建设自己的仓库放置镜像。


为什么javaer也需要学习docker_第2张图片

如图,从阿里云仓库拉取了ubuntu的17.04,想到了什么?Maven。版本号,仓库,可以提交自己的镜像至仓库中...

那么容器是否可以比较成虚拟机呢?是的,甚至有些公司直接使用容器作为虚拟机(当然docker官方不推荐这样干),有同事在前东家,每个人分配一个单独的容器使用。


为什么javaer也需要学习docker_第3张图片

知道这3个概念之后就简单啦,安装好docker的主机中,


为什么javaer也需要学习docker_第4张图片

Docker命令,所有的命令和参数出来了,是不是和linux的命令一样?

如果不知道某个命令,docker命令--help


为什么javaer也需要学习docker_第5张图片

是不是很简单。

另外

为什么javaer也需要学习docker_第6张图片

,docker的命令种类有这些,可以使用docker image这样来查看具体某种命令下面有几个命令。

当然你可能需要一个中文的参考手册,可以参考docker从入门到实践

https://yeasy.gitbooks.io/docker_practice/content/install/centos.html

最后,docker真的是一个简单高效容易学习的工具,基本上一周时间你就完全会啦.

你可能感兴趣的:(为什么javaer也需要学习docker)