鉴于小伙伴的提议,我又整理了一下@zhct果然顺眼多了
作为一个刚接触docker的小白给大家分享一个docker最简单的例子(PS:手打不排除有步骤遗漏)
1.首先我们更新一下apt软件源
sudo apt-get update
2.可以从官网直接安装最新的Docker,我看的书上是这么推荐的,我自己实践了也很有效
sudo apt-get install curl
curl -sSL https://get-docker.com/ | sh
3.安装完成后,通过下面的命令启动Docker的守护进程
sudo service docker start
4.接下来我们就可以验证一下是不是真的成功了
sudo docker run hello-world
如果成功执行
docker images
应该能看到一个镜像了
5.然后我们就可以部署环境了,这里用一个简单的java项目举例,数据库使用mysql,首先我们要建一个mysql镜像,这里面我们用的是5.7版本的,别问我为什么,踩坑了。
sudo docker search mysql
6.使用下面的命令拉取一个
sudo docker pull mysql
7.然后我们再看一下镜像
docker images
docker run --name mysql -p 3306:3306 -v /opt/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
至于这个命令的细节我就不多说了,好多参数有兴趣自己查查看,都能查到,我们在建一个tomcat镜像和容器
docker run --name tomcat-p 8080:8080 -v /opt/tomcat:/usr/local/tomcat/webapps/ -d tomcat
9.我们用docker ps 看一下启动的容器 docker ps -a能看到所有容器
10.用这个命令进到mysql容器中
docker exec -it mysql /bin/bash
然后进账户密码进到mysql我就不多说了
之后把自己的项目打包扔到刚才创建的路径/opt/tomcat下,重启docker容器就行了
11.然后tomcat部署项目的时候我遇到一个坑,就是在一般配置mysql路径的时候都是
localhost db.mysql.driverUrl=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true
因为docker容器好像认为每个容器有自己局域网,然后要都集成到这个ip才能互相访问,这块我理解的也不深
所以在服务器上要修改一个映射mysql的ip
以上就是我的分享,虽然在使用docker上只是用了一点点皮毛,但都是我经过实际验证的,欢迎批评指正