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