使用场景一:一台服务上有多个应用,根据需要启动、关闭指定的一个或多个应用。
使用场景二:将开发环境制作成镜像,上线时直接使用镜像快速部署。
这里以场景一为例.
使用的操作系统使centos7.x
1、docker的安装启动关闭
systemctl stop docker.service
systemctl start docker.service
2、安装运行docker的可视化管理工具portainer
docker search portainer
docker pull portainer/portainer
docker volume create portainer_data
// --privileged=true是授予挂载的权限
// -v前面的目录是宿主机目录,后面的目录是容器内目录
// -p 20000:9000 前面的端口号是外部访问使用的,后面的端口号为容器内部的.
// portainer的默认端口为9000
docker run -d --name portainer --privileged=true -p 20000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
访问http://ip:20000即可访问portainer,设置密码即可登陆portainer。
3、拉取tomcat7.0.75的docker镜像、运行tomcat7.0.75的容器
docker pull tomcat:7.0.75
// 在宿主机中创建一个目录/docker/gemini_manage,用于存放war包或springboot的jar包。
// -v /docker/gemini_manage/:/usr/local/tomcat/webapps/ 将宿主机的/docker/gemini_manage/目录映射到容器的/usr/local/tomcat/webapps/目录
// 20001:8080 宿主机的20001端口映射到docker容器的8080端口
docker run --privileged=true -v /docker/gemini_manage/:/usr/local/tomcat/webapps/ -p 20001:8080 tomcat:7.0.75
4、docker容器内安装命令、安装jdk
// 更新
apt-get update
// 安装vi
apt install vim
// 安装wget
apt install weget
// yum
apt install yum
// ifconfig
apt install net-tools
// ping
apt install iputils-ping
// 安装openjdk1.8
近日因为Oracle Java更改了协议,导致Debian下Java源出现问题,安装时出现错误: Package 'openjdk-8-jdk' has no installation candidate 或 E: Unable to locate package openjdk-8-jdk 解决: 改用Amazon的openjdk发行版。 Amazon Corretto 是开放 Java 开发工具包 (OpenJDK) 的免费、多平台、生产就绪型发行版。 |
wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.deb
//找到java安装路径
which java
apt-get update
apt-get install java-common
dpkg --install amazon-corretto-8-x64-linux-jdk.deb
openjdk1.8安装完成后,这里可以不设置环境变量,等下我们在tomcat里面设置java环境变量。
5、修改tomcat7.0.75镜像
tomcat:7.0.75这个使官方镜像,默认用的openjdk1.7,我们需要改成openjdk1.8。
// 查看tomcat7.0.75的容器Id
docker ps -a
// 进入容器
docker exec -it 容器id bash
修改tomcat的配置文件,在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下两句(指定JDK):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto
export JRE_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto/jre
// 退出容器
exit
// 根据某个“容器 ID”来提交为一个新的镜像
docker commit 容器id mytomcat:1.2
// 通过mytomcat:1.2这个镜像启动容器
docker run --privileged=true -v /docker/gemini_manage/:/usr/local/tomcat/webapps/ -p 20001:8080 mytomcat:1.2
这时就可以在portainer管理工具中启动、关闭这个容器了。
通过http://ip:20001即可访问宿主机/docker/gemini_manage/目录下的应用。
来源:oschina
链接:https://my.oschina.net/garlicts/blog/4727108