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

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

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

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

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

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

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

docker run -d -p : --name mysql --net network0 --ip 192.168.49.10 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=blog hub.c..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 : --name tomcat --net network0 --ip 192.168.49.11 hub.c..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包到阿里云的更多相关文章

  1. 如何在阿里云上部署war包到tomcat服务器

    一. 准备工作:xshell和xftp 首先我们得确保,xshell能够远程连接阿里云ECS,xftp能够保证windows和linux之间的文件传输(当然也可以选择FileZilla,但xftp感觉 ...

  2. docker学习5-docker安装tomcat环境和部署war包

    前言 tomcat部署web项目非常方便,把war包放到webapps目录就可以了.本篇使用docker快速搭建一个tomcat环境 下载tomcat镜像 拉取官方最新版tomcat镜像 [root@ ...

  3. Docker容器Tomcat部署war包

    在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run  -d --nam ...

  4. 部署Java项目到阿里云服务器(Ubuntu16.04 64位)

    生成Jar包 1.进入到项目所在的路径下,打开cmd命令控制台,使用如下命令打包项目. mvn package --前提将项目中使用的maven配置到系统的环境变量中 2.打包完成的jar包在项目目录 ...

  5. 记录centos7下tomcat部署war包过程

    记录centos7下tomcat部署war包过程 1.官网下载tomcat安装包.gz结尾的 2.上传到/usr/local/ ,并解压到tomcat目录下 3.进入tomcat/bin目录,运行./ ...

  6. Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏

    Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏 云收藏项目已经开源3年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时 ...

  7. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

  8. docker自定义镜像上传阿里云

    1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻 ...

  9. tomcat本地部署war包的方式

    最近学习java,在本地tomcat部署时,主要采取以下方式: 一.本地构建生成war包 在本地项目中的terminal下,使用命令 “mvn clean install”或 先执行“mvn clea ...

随机推荐

  1. C语言的谜题

    本篇文章<C语言的谜题>展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的.通过这些迷题,希望你能更了解C语言.如果你不看 ...

  2. [转载]WebDriver工作原理

    转载自:https://www.cnblogs.com/testermark/p/3546287.html WebDriver的工作原理:  在我们new一个WebDriver的过程中,Seleniu ...

  3. statsvn,代码统计

    #! /bin/bash # 计算有效变更代码量的脚本 #./svnCount -thttps://192.168.1.1/xxx -s1000 -e2000 -uxxx -pxxx version( ...

  4. c++类模板分文件编写存在的问题

    c++分文件编写的编译机制: 各个文件独立编译,如果在某.cpp文件中出现了函数调用,但是在此.cpp文件并没有对应函数的实现.此时就会在函数调用出生成特定的符号,在之后的链接过程完成函数调用. C+ ...

  5. Python的迭代器与装饰器

    '''迭代器:两个基本方法:iter()和next()迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合等第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退. 迭代器有两个基本 ...

  6. yyy loves Easter_Egg I(恶心的字符串模拟)

    题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,redbag对soha进行轮番炸,准备炸到soha出来,不料 ...

  7. md5,md2加密加盐

    数组是没有重写object的toString()方法.byte[].toString()

  8. 【Memcached】原理、体系架构、基本操作及路由算法

    1. 什么是Memcached 要了解Memcached首先要到官网上去看官方对它的描述.Memcached的官网网站是:http://memcached.org/,官方对Memcached的描述如下 ...

  9. Linux 判断系统任务是否正在运行

    #!/bin/bash if ps -ef|grep "php index"|egrep -v grep >/dev/null then >& >> ...

  10. Spark异常:A master URL must be set in your configuration处理记录

    问题描述:    项目中一位同事提交了一部分代码,代码分为一个抽象类,里面含有sparkcontent,sparkSession对象:然后又三个子类实例化上述抽象类,这三个子类处理三个任务,最后在同一 ...