docker部署war包到阿里云

Posted lunge-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker部署war包到阿里云相关的知识,希望对你有一定的参考价值。

最近买了个阿里云服务器,配置1核2g内存,学习够了。记录下过程。

1,服务器相关,请看下图,云服务器主要配置是安全组和密钥,前者是开放端口,后者可以用于远程连接(比如我windows系统通过putty远程连接linux主机)

技术分享图片

2,服务器安装docker,pull tomcat和mysql镜像(如docker pull tomcat)

3,创建自定义网络,用于容器间的通信,命令如下:

docker network create --subnet 192.168.49.0/24 --gateway 192.168.49.1 network0

以上创建了一个新的网络network0,可以通过docker network ls查看原始的网络和创建的网络


4,使用mysql镜像创建并启动容器,命令如下:

docker run -d -p 3366:3306 --name mysql --net network0 --ip 192.168.49.10 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=blog hub.c.163.com/library/mysql

以上,-d表示后台运行,-p 3366:3306表示将容器的3306端口映射到服务器的3366端口(如果不与外界进行数据传输,感觉没必要),--name 后面是容器的名字,--net 指定容器使用的网络,--ip 指定容器所属ip,-e 设置环境变量,此处设置了mysql的密码和创建了一个数据库blog(不是必要),最后一串东西是mysql镜像的名字(此处无tag)

5,mysql容器启动后,如果要在mysql里设置数据库和表,需要先进入容器,命令为:

docker exec -it mysql /bin/bash

表示进入mysql容器并使用bash命令模式,然后可以正常操作如mysql -uroot -p回车输入刚才指定的密码,创建数据库和表。其实最好通过Dockerfile文件来实现,直接进入容器操作属于黑箱操作,因为这个操作对于别人来说是不可知的,自己可能都会忘,而Dockerfile必定是记录了镜像是如何构建的。我现在还不熟悉Dockerfile。而且应该使用Dockerfile代替commit创建镜像,总之Dockerfile才是正道。。。


6,使用tomcat镜像启动容器,命令如下:

docker run -d -p 8080:8080 --name tomcat --net network0 --ip 192.168.49.11 hub.c.163.com/library/tomcat

以上跟mysql容器的创建差不多,要注意的是需要通信的容器间其ip要处于同一网段,也就是ip前3个数字相同。
7,复制war包到tomcat容器内,命令如下:

docker cp app.war tomcat:/usr/local/tomcat/webapps

以上表示将当前目录下的app.war包,复制到名称为tomcat的容器的/usr/local/tomcat/webapps目录下。这样项目就部署好了。在第6步时可以使用-v命令将tomcat的webapps与主机某个目录进行挂载,如果不进行挂载,则会在主机/var/lib/docker/volumes/配置随机的一个挂载目录,容器销毁后此目录还是存在,久了会占内存吧。最好挂载指定目录,自己也好清理。
ps:

war包中mysql的配置:url里的ip为mysql容器创建时指定的ip,数据库和表对应容器中创建的数据库和表。

windows推荐使用winscp软件进行云服务器文件的上传和下载。

第7步之后访问网站可能不会立即响应,请耐心等待若干分钟后再试,项目部署对于服务器可能需要点时间。

 





以上是关于docker部署war包到阿里云的主要内容,如果未能解决你的问题,请参考以下文章

如何将APP部署在阿里云服务器上?

阿里云上如何利用war包安装jenkins

Docker容器Tomcat部署war包

阿里云上如何搭建jenkins

使用Jenkins远程部署war包到tomcat container

如何部署war包到tomcat