docker共享宿主机的jdk

docker-运维-共享宿主机的jdk

准备

mkdir dc-jdk
cd dc-jdk

创建dockerfile
在 dc-jdk中创建 Dockerfile 文件:

FROM centos:7.9.2009
ENV LANG C.UTF-8
# 指定容器内jdk所在目录
ENV JAVA_HOME /usr/local/jdk-11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin

创建docker-compose.yml
在 dc-jdk中创建 docker-compose.yml 文件:

version: '3'
services:
  myjdk18:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      # 将本地的jdk目录/usr/local/jdk-11挂载到容器中
      # 本地jdk目录:容器jdk目录 
      - /usr/local/jdk-11:/usr/local/jdk-11
    command: java -version

构建镜像
这一步很重要,每次修改了dockerfile 之后,都需要执行这个命令!!

$ docker-compose build
[root@bluesky dc-jdk]# docker-compose build
Building myjdk18
Step 1/5 : FROM ubuntu:latest
 ---> 775349758637
Step 2/5 : ENV LANG C.UTF-8
 ---> Using cache
 ---> 9d7b38a12294
Step 3/5 : ENV JAVA_HOME /opt/softinstall/jdk1.8.0_11
 ---> Using cache
 ---> 07da70072ae2
Step 4/5 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Using cache
 ---> f707d196f0fa
Step 5/5 : ENV PATH $PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
 ---> Using cache
 ---> 9d436adab128
Successfully built 9d436adab128
Successfully tagged dc-jdk_myjdk18:latestd

运行容器

$ docker-compose up
————————————————
[root@bluesky dc-jdk]# docker-compose up
Creating dc-jdk_myjdk18_1 ... done
Attaching to dc-jdk_myjdk18_1
myjdk18_1  | java version "1.8.0_11"
myjdk18_1  | Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
myjdk18_1  | Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
dc-jdk_myjdk18_1 exited with code 0

最后查看执行:


image.png

image.png

image.png
关于docker-compose build问题:
image.png
以下是分析和解决方法:

这个报错是由Cryptography库引起的,它是一个Python的加密库,用于提供各种加密算法和协议的实现。这个报错的意思是,Python 3.6已经不再受Python核心团队的支持,因此Cryptography库中对Python 3.6的支持也已经被弃用,并将在未来的版本中被移除。

1.查看Cryptography库版本
pip3 show cryptography
2. 升级Cryptography库
    升级Cryptography库的方法也很简单。您可以使用pip命令来升级Cryptography库。在命令行中输入以下命令即可:

pip3 install --upgrade cryptography
也可以先卸载现有版本再下别的:
pip3 uninstall  cryptography
如果想升级到特定版本,可以使用以下命令:
pip3 install cryptography==<version>
其中,是想要升级到的Cryptography版本号。要解决这个问题,需要升级Python版本或者升级Cryptography库版本。升级Python版本是更好的解决方案,可以确保您的应用程序能够正常运行,并且可以获得更好的和性能。
查看有哪些版本:
pip3 install  cryptography==
如图:
image.png
最后选择需要版本进行安装
pip3 install cryptography==3.4.8
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。