最近公司推出docker,博主很难受,毕竟是个新东西,之前没接触过,而且这个东西windows10以下还安装不了。各种各种滴坑博主简直汤了个遍,为了让自己记得牢,更让更多开发者们快速进行docker化,博主想以自己所经历的过程总结一下,方便开发,闲言少叙,这就开始。
一、准备工作
1.系统信息以及环境
安装docker之前,首先要确定自己的配置够不够,因为docker比较占内存,类似于虚拟机但有别于虚拟机。推荐4核8g。另外,重中之重,要确定你的系统。如果你是Linux系统,恭喜,轻松安装docker无压力,一路next就好了。那么我们大多数估计都是windows吧,windows就要注意,必须必须是win10专业版,否则不能安装docker。等等别着急,因为其他系统虽然不能,但是有两个解决办法,一个是破解(博主不推荐,花很多钱买的正版系统说破解就破解,那能行吗),二是安装docker toolbox。但是win10专业版的,请注意,千万别两个一起安装。
2.docker、docker toolbox安装
安装的话没有什么复杂的地方,大家可以参考https://blog.csdn.net/weixin_42687598/article/details/81098182 ,这里感谢这位博主提供的toolbox安装方法,以及问题解决方法。其实就是一路next就好。
3.配置镜像加速
因为docker Hub本身为外国网站,响应时间长,镜像拉取得半天,所以最好使用国内镜像,推荐大家使用阿里云镜像服务,
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,内附docker toolbox,docker配置镜像加速的流程。
4.学习docker,Linux命令
这个不用博主多说,Linux命令百度查查,或者现用现查都行,因为进入docker镜像linux居多。docker命令,主要有登陆:
docker login,拉镜像 docker pull 查看镜像 docker images ,查看容器 docker ps -a 创建并运行容器 docker run 等等。现用现查也ok。
二、自己搭建 java docker镜像
1.拉取镜像
博主有台式,笔记本两个电脑,都有docker,但是一个是 toolbox,一个是docker window 。两者操作基本一致,只是toolbox的坑包含了docker window的坑。所以再这里 博主以docker toolbox为例
拉取镜像(centos 镜像):
docker pull daocloud.io/centos:latest
慢慢等读条(想起了游戏读条)就好了。
拉下来以后,大家可以使用命令查看镜像
docker images
这就是刚刚下的镜像(centos7)
接下来,我们实例化(搞)一个容器出来:
docker run -dit --privileged --name=centos7 daocloud.io/centos:latest /usr/sbin/init
注意:name 后随意起名的,也就是容器名,daocloud.io/centos:latest 这个也可以写imageid,也就是镜像id,这里写的是镜像名。
toolbox的开发者们,如果和博主报一样的错的话,就这么搞。
docker-machine.exe ssh default
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
这样就没问题了。
重新弄个新容器出来,然后看下现在容器的运行状态(重新实例化容器时,name千万不要重复,如果报错了看看是不是重名了)
docker ps
docker ps -a
上面是查看已运行的容器,下面是查看全部容器。
这样,容器就代表运行了。
接下来:进入容器
docker exec -it centos /bin/bash
注意:-it 后面是容器名,也可以使用容器id
2.搭建 java环境
首先,我们需要安装个wget,这个是下载压缩包等等的必备命令包:
yum install -y wget
等待安装完即可。接下来,下载jdk1.8
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
下好之后,命令:ls,就可看到安装包啦
解压缩:
tar -zxvf jdk-8u131-linux-x64.tar.gz
接下来就是常见的弄环境变量:
vi /etc/profile
点进去后会出现一大堆东西,别慌,按i就可以编辑
JAVA_HOME=/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME$/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
JAVAHOME这个你得看你java在哪。
完事后按esc,然后 :wq 保存并退出。
然后执行
source /etc/profile
我们使用java -version查看是否配置成功
出现这个,恭喜你成功了第一步。
3.搭建mysql
详细请见https://blog.csdn.net/jason19905/article/details/81366202,感谢这个博主提供的mysql安装教程。大家要注意一点:可以按照这位博主大大的安装,但我们暂时先不要去提交。
4.搭建tomcat
到了咱们tomcat的时候啦,其实跟安装jdk一样。
使用wget下载tomcat包
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz
然后解压:
tar -zxvf apache-tomcat-8.5.40.tar.gz
然后就可以启动了哦,我们cd 命令切换到tomcat 的 bin 下 使用 ./startup.sh即可。
至此,java基本需要的东西就全部弄完啦。如果有war包就往tomcat仍就好啦。
5.提交容器制作镜像
要知道,容器弄好了后,它可不是永久存在的哦,需要持久化,也就是作成镜像。
首先退出容器,ctrl+q+p
然后使用
docker ps
看看正在运行的这个容器
就是这个,接下来,我们就要commit 喽
docker commit -a"zjl" -m"testJava" centos zjl/test
等等等。。。。成功后我们使用
docker images
查看下我们的镜像
这样一个镜像就做好啦。当然,大家可以使用阿里云镜像服务,把镜像提交到云去。具体操作阿里云镜像服务有操作说明的哦,在此就不做过多赘述。
6.启动镜像,映射端口
$ docker run --privileged -ti -p 8080:8080 -p3306:3306 --name javaTest zjl/test /usr/sbin/init
说明:-p 主机端口:容器端口 zjl/test是镜像的名称,当名字很长也可以使用镜像id哦,image id这个。
启动后大家会发现卡住了,没错,卡住了。但是博主还没查到解决方式,博主解决方式就是关掉窗口,再启动。
你就会发现已经启动成功啦。然后我们,进入容器,启动tomcat。进入容器,启动tomcat就不再说了。现在,docker windows的开发者们就可以localhost访问docker的tomcat啦。
但是,docker toolbox的开发者们,你们需要再映射一下端口哦。
双击这个图标。
右键,点击设置
选择网络
点击端口转发
根据自己启动容器的端口进行配置哦,也就是 -p 的时候 主机端口:容器端口,这里配置主机端口。
这样就完成了哦。
最后最后最后。。。。。。。。。博主给大家发福利喽,博主自己配置了个 java镜像,jdk1.8+tomcat8+mysql5.7+redis4.0.1
现在是完全公开的哦。下面附上拉取代码:
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/textforxiaolin/java_test:v1.2
希望可以让大家少走弯路,同时也希望大家支持博主。谢谢大家。
如果觉得博主不错可以请博主喝瓶水哦。