Docker安装以及使用Docker部署简单的web应用
1. 关于Docker
1.1 Docker是什么
docker按照通俗易懂的理解来说就是一个用来装应用的容器,就像可以把水装到杯子里,把饭装到碗里,把钱装到钱包里,可以把网站放在docker中,可以把任何想得到的程序放在docker中。
1.2 Docker的三个概念
分别是镜像(image),容器(container),仓库(Repository)。
镜像与容器的关系就像是面向对象中类和对象的关系,镜像是静态的定义,容器是镜像运行时的实体,我们可以通过docker run命令将镜像实例化为容器。容器是可以被创建,启动,删除以及暂停的。
仓库可看成一个代码控制中心,用来保存镜像。
2.Ubuntu Docker安装
1.更新apt包索引并安装 apt 依赖包,用于通过HTTPS来获取仓库。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
2.添加GPG密钥。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3.设置仓库。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
4.再次更新apt包索引并安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
5.运行hello-world校验Docker安装是否成功。
sudo docker run hello-world
出现下图即代表安装成功。
3. 使用Docker部署简单的web应用
3.1 拉取mysql镜像并实例化为容器
1.使用命令: docker pull mysql:5.7 从仓库拉取镜像到本地,拉取镜像要指明镜像名称及版本,不指明版本则拉取最新版的镜像。
2.创建容器:docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
–name:给容器命令为mysql
-p:本地与远端的端口映射
-e:在创建mysql容器的同时创建一个root用户,密码为123456
3.查看容器ID:docker ps
4.进入容器并建立web应用所需的相关数据库或表
访问容器:docker exec -it XXX(容器ID) bash
3.2 拉取tomcat镜像并配置相关内容
1.使用命令: docker pull tomcat:9.0.43从仓库拉取tomcat镜像到本地
2.创建tomcat容器:docker run -itd --name tomcat -p 8081:8080 tomcat:9.0.43
3.使用docker exec -it XXX(tomcat容器ID) /bin/bash 进入tomcat容器
此时,在本地浏览器访问tomcat主页是访问不了的,是因为tomcat容器中存在两个webapps文件夹,如上图所示,需要把webapps.dist里的内容复制到webapps文件夹里,并删掉webapps.dist这个文件夹,此时就可以正常访问了。
复制时需要将路径切换至webapps.dist下,然后执行:cp -r XX(要移动的文件或文件夹) XXX(目标文件夹路径)
删除webapps.dist:rm -rf webapps.dist
4.将web应用的war包拷贝至tomcat的webapps目录下
使用命令:docker cp XXX b5d0525fade8:/usr/local/tomcat/webapps
如上图所示,放到webapps下,war包会自动解压。
5.最后进入解压好的包中,找到自己配置数据库的相关文件,修改一下数据库的路径以及密码等信息,数据库地址进入mysql容器中查看,要对应mysql容器的ip地址以及端口。
如上图我的数据库相关配置放在database.properties,其内容如下图。
修改配置文件需要用到vi命令,如果容器中提示没有vi命令,可以使用如下命令来安装。
apt-get update
apt-get install vim docker
3.3 查看部署的web应用
直接访问虚拟机的ip地址加设置的tomcat访问端口号以及war包文件名即可查看。