1、一副图简单了解下docker的布局,它是虚拟的,docker分为私服、镜像、容器三个模块

一般从私服pull镜像,镜像run一个容器,我们把容器作为一个虚拟服务,里面可以独立运行进程有独立的内网Ip,

通常把tomcat、工程挂到容器中运行

2、快速安装Docker(在centos、ubuntu上的差异不大)

sudo apt-get update
sudo apt-get install docker.io
#启动服务和守护进程

service docker.io status
service docker.io start

3、下载镜像文件(pull命令下载,从私服随便下载一个镜像,自己重新制作)


#pull 后面是镜像名称,你可以先docker search java  在私服搜索java 是否有这个镜像再下载
sudo docker pull java

#下载好后  查询镜像是否存在
sudo docker images


3、下载好镜像创建、然后制作容器

镜像下载到本地以后,就可以使用Docker运行,
通过下面的命令参数启动容器,

docker run <相关参数> <镜像 ID> <初始命令>

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行  ()
-v:表示需要将本地哪个目录挂载到容器中   (这个目录和本地是交互的,目录下的文件在容器和本地上是可以相互看见的)
格式:-v <宿主机目录>:<容器目录>

#我的相关程序都在当前机器的/data/software/目录下,并且想把它挂载到容器的相同目录下:

sudo docker run -i -t -v /data/software/:/data/software/ ae983d5e88ce /bin/bash

4、创建好容器自动进入了容器   然后安装JDK和Tomcat等(这步最重要的就是配置tomcat环境,配置不好重启容器不能运行)

(可以用命令(docker cp  文件名称  容器id : 容器下的路径)把相应的安装文件复制到容器中   )

安装相关的JDK等程序,这里全部安装到/data/目录:

tar -zxvf jdk-7u25-linux-x64.tar.gz -C /data/
mv jdk1..0_25 jdk unzip apache-tomcat-7.0..zip -d /data/
mv apache-tomcat-7.0. tomcat 配置环境变量 vi /etc/profile 添加下面的配置:

export HISTTIMEFORMAT
JAVA_HOME=/data/jdk1.7
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

export CATALINA_HOME=/data/tomcat
export CATALINA_BASE=/data/tomcat


保存并退出,设置立即生效: source /etc/profile

5、启动tomcat时必须通过TOMCATHOME/bin/catalina.sh实现,不能使用TOMCAT_HOME/bin/startup.sh启动,否则脚本执行后容器会马上退出。

vi /data/start.sh

添加以下内容:

#!/bin/bash
# Export environment variable
source /etc/profile
# Start tomcat
bash /data/tomcat/bin/catalina.sh run 添加可执行权限: chmod u+x /data/start.sh #然后退出 容器
exit #查看容器
docker ps #查看运行的容器
docker ps -a #查看 所有容器 docker start 容器Id #启动容器
docker restart 容器id #重启
docker stop 容器id #停止容器
docker rm 容器id #删除容器
docker rmi 镜像id #删除镜像 #当你重启容器时 docker ps 还看到容器启动成功 说明你成功了

6、这就制作好容器了,然后你可以提交镜像(以后可以直接用这个镜像创建容器,容器里面就有java+tomcat环境了)

#提交容器  创建镜像 docker commit  容器ID  镜像名称

sudo docker commit 39b2cf60a4c1 flm/java

#查看是否创建镜像
sudo docker images #如果看到 flm/java 这个镜像存在说明你成功了

#docker inspect可以查看新创建的镜像的详细信息:

sudo docker inspect flm/java

7、运行新创建的容器( -p 18080:8080  是把 服务器的端口18080映射到容器端口8080  ,javaweb   命名容器名称, /data/start.sh 启动文件)

docker run -d -p 18080:8080 --name javaweb flm/java /data/start.sh

-p:表示宿主机与容器的端口映射,此时将容器内部的  端口映射为宿主机的  端口,

这样就向外界暴露了  端口,可通过 Docker 网桥来访问容器内部的  端口了。

查看后台是否启动成功:

docker ps

然后访问  http://192.168.10.16:18080 说明你成功了

哈哈哈 thans

最新文章

  1. SQL实用
  2. Altium Designer 生成Gerber文件
  3. 彻底卸载 RAD Studio 2009/2010/XE
  4. urlparse
  5. AX7 VM can not starting
  6. #-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景
  7. Linux/Unix shell 监控Oracle实例(monitor instance)
  8. Dom操作的分类
  9. linux C 9*9
  10. android通过httpClient请求获取JSON数据并且解析
  11. 新的HTTP框架:Daraja Framework
  12. 通过 bootloader 向其传输启动参数
  13. 【Kafka】
  14. 201621123060《JAVA程序设计》第十二周学习总结
  15. vue2.0组件通信小总结
  16. 域 搭建OU 组织单元
  17. Python绘图的颜色设置
  18. WebStorm for Mac(Web 前端开发工具)破解版安装
  19. Android Gradle Plugin指南(五)——Build Variants(构建变种版本号)
  20. 将一个list分为每份小鱼1000的

热门文章

  1. centos中安装mysql
  2. 到底什么样的企业才适合实施SAP系统?
  3. 小米wifi
  4. 两点补充——CSS3新属性以及弹性布局
  5. phoenix常用命令
  6. Mysql报错注入原理分析(count()、rand()、group by)
  7. mysql 存储过程中使用游标中使用临时表可以替代数组效果
  8. awk 使用案例
  9. 【Linux SELinux】提升系统安全(一)
  10. Android事件传递机制详解及最新源码分析——View篇