自己制作镜像(之前是引用他人镜像)
1. 本地创建一个文件夹
2. 创建jdk文件夹*(随意)
3. 导入jdk8u51.tar.gz (都行-> 看解压版本)
4. 在当前目录创建Dockerfile 粘贴一下配置
FROM centos:8
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']
5. 运行 docker build创建镜像
docker build -t jdk:8 .
5.1 运行结果展示:
5.2 解释: DockerFile中配置
第一步 从docker images 镜像中 查看有没有centos:8
第二步: 将jdk_8u51 安装到 新建容器的 /usr/local/docker目录下
第三步: 设置java home + 保留之前配置不变 查看环境变量 echo $PATH
第四步: 控制台bash交互执行
exit 退出
docker ps -a 然后重启
6. docker build 会自动在docker镜像中出现 docker images 查看
进入后 查看 java -version
7. 写一个java文件 HelloWorld.java
package pzy;
public class HelloWorld{
public static void main (String[] args){
System.out.println("pzyzx->test");
}
}
8. javac -d . HelloWorld.java
-d : 看到package 创建这个pzy文件夹
. : 表示当前文件夹
.class会生成在 pzy文件夹下
9. 运行 ,class文件
java pzy.HelloWorld
看到输出 pzyzx->test 成功!!!!
根据上面 进行下一步操作 jdk:8 镜像(也是根据centos:8 制作)
创建root/servers文件夹
将sentinel.jar文件拖进去
执行下面指令:
docker run -d -p 8180:8080 --name sentinel -v /root/servers:/usr/sca jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
参数解释:
-d 后台运行
-p : 端口映射 宿主机(8180对外暴露) ->sentinel默认端口 : 8080(容器内)
--name: 设置容器名字(可以不写 有默认的)
-v : 本地目录挂载(或创建数据卷 volume) 宿主机sentinel地址 对应容器 新建路径(数据同步)
jdk:8 java -jar 容器内地址(容器内运行): 使用jdk:8 镜像执行sentinel.jar文件
直接docker run就可以
查看centos:8 : docker images
创建一个文件夹(任意)
将jdk.tar.gz,sentinel.tar.gz 放到一起
vim Dockerfile 创建Dockerfile
FROM centos:8
ADD jdk-8u51-linux-x64.tar.gz /usr/local/
ADD sentinel-dashboard-1.8.0.jar /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
PATH=/usr/local/jdk1.8.0_51/bin:$PATH
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
参数解释: EXPOSE 对宿主机暴露端口8080 entrypoint: 运行(启动)容器时需要执行的命令
docker build -t sentinel:8 . #注意这个点
运行 此镜像 设置对外暴露端口9000
docker run -d --name sentinel9000 -p 9000:8080 sentinel:8
参数解释: -d后台运行
--name 设置容器名字
-p 设置端口映射 宿主机-> 容器 9000-> 默认8080
sentinel:8 使用刚制作的sentinel