开发十年,就只剩下这套Java开发体系了 >>>
Windwos下基于docker开发,代码肯定是在windows的硬盘上的,要让代码运行到docker中的linux上,必须把编译后的代码目录挂载到虚拟机的Linux上。所以在开发环境下大致的依赖关系是:
-> WebApp ->Tomcat->CentOS->docker->virtualBox(内置linux) -> Windows (编译生成Webapp)
步骤:
1、安装Docker ToolBox
2、运行 VirtualBox (软件默认会把Windows的C盘挂载到Linux的根目录上,权限可访问到/c/Users)
3、打开Docker quickstart 客户端 使用ssh连接到上述linux上 (注意提示信息中IP)
当然,也可以使用第三方的ssh工具 如:XShell 连接
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
songsz@DESKTOP-3UKPRFC MINGW64 ~
$
#此时并未连接到Virtual Box中的Linux上,下面使用SSH连接:
#默认用户名docker,密码:tcuser
$ ssh [email protected]
[email protected]’s password:
# ssh连接到Virtual Box的linux上
## .
## ## ## ==
## ## ## ## ## ===
/”””””””””””””””””\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| ‘_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ ‘__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.2, build master : aba6192 – Thu Sep 10 20:58:17 UTC 2015
Docker version 1.8.2, build 0a8c2e3
docker@default:~$
4、由于 C盘 是共享的,所以把镜像复制到C盘,可以直接导入准备好的镜像。
(当然,也可以通过docker search <关键字> 从网上搜索 。)
cat centos7_jee8.tar | docker import - lostvip/jee8:v1.0
5、启动容器,同时把容器中的tomcat(安装在/opt/tomcat7)的webapps映射到共享目录上,
(这里我们选择C盘下的docker目录)
docker run -i -t -p 8080:8080 --privileged=true -v /c/Users/docker:/opt/tomcat7/webapps --name jee8_test lostvip/jee8:v1.0 bash
6、在windows下访问: http://192.168.99.100:8080 发现出现一个空白页面,原因是没有web工程
在docker目录下新建一个目录 ROOT 或test 并复制一个jsp,便可访问了
http://192.168.99.100:8080/test
========================================================
容器创建完,以后就可以直接通过name或containerId来启动了:
docker ps -a (查看所有容器)
docker start
docker attach
注: 一条命令实现停用并删除容器 docker stop $(docker ps -q) & docker rm $(docker ps -aq)