当前位置:首页 > 服务端 > 使用Dockerfile构建Python、Java开发环境

使用Dockerfile构建Python、Java开发环境

2022年11月08日 14:43:31服务端6

使用Dockerfile 构建JDK1.8镜像

step1 编写Dockerfile

root@master:/BigData/DockerFile# mkdir JDK1.8
root@master:/BigData/DockerFile# cd JDK1.8
root@master:/BigData/DockerFile/JDK1.8#             #将jdk1.8压缩包放入该文件夹
root@master:/BigData/DockerFile/JDK1.8# vi Dockerfile

查看jdk1.8压缩包是否在文件夹内:
使用Dockerfile构建Python、Java开发环境 _ JavaClub全栈架构师技术笔记

Dockerfile内容:

FROM ubuntu:16.04
MAINTAINER xxxxxx
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLAS
SPATH
ENV PATH $JAVA_HOME/bin:$PATH

step2 安装镜像

root@master:/BigData/DockerFile/JDK1.8# docker build -t ubuntu/jdk1.8 .    #构建镜像
Sending build context to Docker daemon  185.6MB
Step 1/10 : FROM ubuntu:16.04
---> 657d80a6401d
Step 2/10 : MAINTAINER zhaoyanyan
---> Running in aaac139797be
Removing intermediate container aaac139797be
---> ec7b02080508
Step 3/10 : WORKDIR /usr
---> Running in 583887245a6c
Removing intermediate container 583887245a6c
---> 6d9b8dc92d71
Step 4/10 : RUN mkdir /usr/local/java
---> Running in 57a3c89b2682
Removing intermediate container 57a3c89b2682
---> e4e2980731e0
Step 5/10 : ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
---> b5b84bf4904d
Step 6/10 : ENV JAVA_HOME=/usr/local/java/jdk1.8.0_181
---> Running in 993a1816e48a
Removing intermediate container 993a1816e48a
---> 5cb9958f12cf
Step 7/10 : ENV JRE_HOME $JAVA_HOME/jre
---> Running in 947957d73fb6
Removing intermediate container 947957d73fb6
---> 49c90fb57061
Step 8/10 : ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
---> Running in c782326263c2
Removing intermediate container c782326263c2
---> c0836e86267a
Step 9/10 : ENV PATH $JAVA_HOME/bin:$PATH
---> Running in 1a3e76ef1133
Removing intermediate container 1a3e76ef1133
---> c237a8dd6898
Step 10/10 : CMD /usr/local/java/jdk1.8.0_181/bin/java -version
---> Running in fe9d61fb6c55
Removing intermediate container fe9d61fb6c55
---> a0f8080bbcee
Successfully built a0f8080bbcee
Successfully tagged ubuntu/jdk1.8:latest

step3 验证安装

root@master:/BigData/DockerFile/JDK1.8# docker run -it ubuntu/jdk1.8
root@49c73b230e90:/usr#
root@49c73b230e90:/usr# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

step4 保存修改的容器

修改后的容器,如果直接stop掉,则这些改动在下次启动时不会保留,因此需要把它保存到本地另一个镜像中。

root@master:/BigData/DockerFile/JDK1.8# docker ps -l    #查看正在运行的容器
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                     PORTS               NAMES
49c73b230e90        ubuntu/jdk1.8       "/bin/bash"         About a minute ago   Exited (0) 3 seconds ago                       amazing_mclaren
root@master:/BigData/DockerFile/JDK1.8# docker commit 49c73b230e90 jdk1.8:java    #保存容器
sha256:65ecc6893c7b3055104440ed37ec2ac45acc46b19f7118cda031f371c9f4288c
root@master:/BigData/DockerFile/JDK1.8# docker stop 49c73b230e90    #停掉容器
49c73b230e90
root@master:/BigData/DockerFile/JDK1.8# docker images    #查看镜像 可以看到已经在磁盘上了
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
jdk1.8                               java                65ecc6893c7b        5 minutes ago       503MB

step5 导出镜像文件

root@master:/BigData/DockerFile/JDK1.8# docker export -o jdk1.8_run.tar 49c73b230e90    #导出 49c73b230e90容器到文件jdk1.8_run.tar
root@master:/BigData/DockerFile/JDK1.8# ll #查看jdk1.8_run.tar文件是否存在磁盘 这样导出的tar文件可以通过导入命令 在不同机器之间进行拷贝和迁移
total 643308
drwxr-xr-x 2 root root      4096 10月  7 19:47 ./
drwxr-xr-x 4 root root      4096 10月  7 19:04 ../
-rw-r--r-- 1 root root       366 10月  7 19:31 Dockerfile
-rw------- 1 root root 473084928 10月  7 19:47 jdk1.8_run.tar

使用Dockerfile 构建Python3开发环境镜像

step1 编写Dockerfile

root@master:/BigData# mkdir DockerFile
root@master:/BigData# cd DockerFile
root@master:/BigData/DockerFile# mkdir python3
root@master:/BigData/DockerFile# cd python3
root@master:/BigData/DockerFile/python3# vi Dockerfile
root@master:/BigData/DockerFile/python3#

其中Dockerfile内容:

FROM ubuntu:16.04
RUN  apt-get update
RUN  apt-get upgrade -y
# Install python3
RUN  apt-get install -y python3
# Install pip
RUN apt-get install -y wget vim
RUN wget -O /tmp/get-pip.py https://bootstrap.pypa.io/get-pip.py
RUN python3 /tmp/get-pip.py
RUN pip install --upgrade pip
#Install other libs
RUN pip install -U numpy
RUN pip install -U matplotlib
RUN pip install -U pandas
RUN pip install -U seaborn
RUN pip install -U scikit-learn

# Install python-dev
RUN apt-get update
RUN apt-get install -y python-dev
# Install jupyter notebook
RUN pip install  jupyter
RUN pip install  notebook

step2 安装镜像

root@master:/BigData/DockerFile/python3# docker build -t ubuntu/python3 .

step3 验证安装

root@master:/BigData/DockerFile/python3# docker run -it ubuntu/python3
root@4f4c6665f006:/#
root@4f4c6665f006:/# pip -V
pip 19.2.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
root@4f4c6665f006:/# python3.5
Python 3.5.2 (default, Jul 10 2019, 11:58:48)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello world")
hello world

同样需要保存修改后的容器,也可以导出镜像,具体操作可参考JDK1.8。

作者:Christine_7
来源链接:https://www.cnblogs.com/eugene0/p/11632497.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68492.html

分享给朋友:

“使用Dockerfile构建Python、Java开发环境” 的相关文章

java基础知识讲解(一)数据类型和运算符

java基础知识讲解(一)数据类型和运算符

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。 Java中定义了3类8种基本数据类型 数值型- b...

Python:实用的IPython(一种交互式开发环境)

Python:实用的IPython(一种交互式开发环境)

用习惯了CentOS突然又用Windows,写Python想在控制端写怎么办?别急,一招教你在Windows终端写出一手舒服的代码! 欢迎光临,我的主页。更多干货,等你来学: 不许代码码上红 警句:莫道君行早,更有早行人。...

linux上安装Docker(非常简单的安装方法)

linux上安装Docker(非常简单的安装方法)

最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像、容器、仓库 镜像:类似虚拟机的镜像、用俗话说就是安装文件。 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例, 可以将其...

Java日志框架那些事儿

Java日志框架那些事儿

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J...

Java实现素数的判断

素数的定义只能被1和它本身整除,不包括1 例 2.3.5.7.11.13 实现代码 Scanner in=new Scanner(System.in); int n ; n=in.nextInt(); for(int n1=2;n1&l...

java计数循环及小技巧

要运行一个很大次数的循环应该选择一个小数,然后去判断 例如本例子是100可以选择10去判断 public static void main(String[] args) { // TODO Auto-generated metho...

Java获取明天的时间(当前时间加一天)

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;     public class&nbs...

JAVA UUID 生成唯一标识

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want 需求     项目在设计表的时候,要处理并发多...

初探设计:Java继承何时用?怎么用?

初探设计:Java继承何时用?怎么用?

Writer      :BYSocket(泥沙砖瓦浆木匠) 一、回顾继承 常见的如下: 1、依赖(”uses-a“) 2、聚合(”has-a“) 3、继承(”is-a“)类...

Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较

Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 继续上一篇的容器文章认识容器,泥瓦匠慢慢带你们走进List的容器解说。今天泥瓦匠想说说 ArrayList 、LinkedList和Vector比较。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。