容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)
操作系统
[root@Optimus /]# uname -a
Linux Optimus 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@Optimus /]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
docker版本
[root@Optimus /]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64
docker容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc289f421957 insaneworks/centos "/bin/bash" 47 hours ago Up 47 hours master
选择的是jdk-7u75-linux-x64.rpm
放到宿主机的/usr/java/目录下
[root@Optimus /]# cd /usr/java
[root@Optimus java]# ls
jdk-7u75-linux-x64.rpm
从宿主机向docker容器中拷贝数据
1) 失败的拷贝方式
从docker容器中向主机拷贝文件 docker cp containerID:container_path host_path
从主机复制到容器docker cp host_path containerID:container_path
我尝试用以上方式传送文件至docker容器中时会报错
[root@Optimus java]# docker cp jdk-7u75-linux-x64.rpm master:/mnt/
Error: Path not specified
报错提示一直都是Error: Path not specified。
2) 正确的拷贝方式
从主机向docker容器中拷贝数据时,其实采用的是一种通道的方式。
首先,要用docker inspect方法获得容器的完整ID
[root@Optimus java]# docker inspect -f '{{.Id}}' master
fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
这里的master可以是container name也可以是短的container ID。返回的fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4是完整的容器ID。
然后,使用通道拷贝数据
[root@Optimus java]# cp /usr/java/jdk-7u75-linux-x64.rpm /var/lib/docker/aufs/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/root/
cp: cannot create regular file `/var/lib/docker/aufs/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/root/': No such file or directory
报错No such file or directory
进入到/var/lib/docker/目录下,确实没有/aufs这个目录。
[root@Optimus /]# cd /var/lib/docker
[root@Optimus docker]# ls
containers devicemapper graph init linkgraph.db repositories-devicemapper tmp trust vfs volumes
在docker容器中可以看到有以下目录
[root@Optimus containers]# docker exec -it master /bin/bash
[root@master /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
查找一下docker容器相关的目录,fc289f421957df7d03146是容器的ID号。
[root@Optimus containers]# find / -name fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/run/docker/execdriver/native/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/lib/docker/devicemapper/metadata/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
...
发现目录/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4 。
因此,在docker中,其实是映射到/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/这个文件夹中的。这个文件下面就是docker中的根目录里面的内容,然后我们就可以按照我们想要的内容随便进行拷贝。
开始拷贝。拷贝到master容器中的mnt目录下。(为什么要加/rootfs/这个目录我也不记得什么鬼了。)
[root@Optimus /]# cp /usr/java/jdk-7u75-linux-x64.rpm /var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/rootfs/mnt
进入容器,查看文件。宿主机向docker容器拷贝数据成功。
[root@Optimus /]# docker exec -it master /bin/bash
[root@master /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
[root@master /]# cd mnt
[root@master mnt]# ls
jdk-7u75-linux-x64.rpm
安装java
添加可执行权限。
[root@master mnt]# chmod +x jdk-7u75-linux-x64.rpm
[root@master mnt]# ls
jdk-7u75-linux-x64.rpm
安装。
[root@master mnt]# rpm -ivh jdk-7u75-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
配置环境变量:
编辑profile文件
vim /etc/profile
在profile文件最后追加入如下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#以下是Hadoop配置
export HADOOP_HOME=/mnt/hadoop-2.8.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
保存并退出。
执行如下
#source /etc/profile
java版本
[root@Optimus /]# java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)相关推荐
- Docker——容器内部执行宿主机的docker命令
现在有一个需求是在容器内部使用docker命令,但试了一下报命令不存在 解决办法: 把docker相关的命令和依赖使用-v挂载到容器 docker@box:~$ docker run -it -d \ ...
- 宿主机172连接容器mysql_开发时从宿主机连接容器中的MySQL
从宿主机连接Docker容器中的MySQL 刚接触Docker,电脑安装Docker后,使用docker命令pull了一个MySQL5.6的Docker镜像,之后docker run启动创建容器. 可 ...
- sock 文件方式控制宿主机_docker的容器可视化工具portainer
1.搜索镜像 [root@holly ~]# docker search portainer 2.下载portainer [root@holly ~]# docker pull portainer/p ...
- 6. 修改docker端口 (映射宿主机和docker容器中的端口)
文章目录 1. 查询已运行的容器 2. 停止docker服务 3. 进入主机配置文件目录 4. 修改配置文件 5. 验证是否生效 1. 查询已运行的容器 2. 停止docker服务 systemctl ...
- centos 安装java_自己动手基于centos7安装docker及如何发布tomcat镜像
欢迎关注我的头条号:Wooola,专注于Java.Golang.微服务架构,致力于每天分享原创文章.快乐编码和开源技术. 前言 在安装docker之前,先要检查centos7的内核版本,docker要 ...
- centos 安装java_在CentOS8上编译安装开源EDA工具——Surelog
介绍 Surelog是一个支持SystemVerilog 2017的Pre-processor.Parser.UHDM Compiler,可用于语法检查.仿真.综合.形式验证工具的前端. 官网安装说明 ...
- 宿主机和docker容器之间的文件拷贝
1.从容器里面拷文件到宿主机 在宿主机里面执行以下命令: docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为nginx,要从容器里面拷贝的文件路为 ...
- 在安卓上安装java_如何在Android上安装JavaCV并使用FrameGrabber
有人能告诉我我在哪里做错了吗?这些是我遵循的步骤: >从Android开发者网站下载了adt-bundle-windows >创建了一个新项目和一个libs / armeabi文件夹 &g ...
- VMware Workstation 16 Pro 中的虚拟机使用宿主机的COM口
1.在虚拟机关机的状态下,在左侧菜单中选中希望操作的虚拟机,点击编辑虚拟机设置或选择设置 or 2.在弹出的虚拟机设置页面,选择添加 选择"串行端口",然后点击"完成&q ...
最新文章
- [导入]Learning.ASP.NET 2.0.with.AJAX.pdf(14.14 MB)
- 国内IT出版社的四大软肋
- Fabric环境搭建
- 8位数控分频器的设计_eda设计数控分频器(实现2~16)分频
- python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作
- 用DL深度学习神经网络绘图---对于程序来说0和1到底是什么样的
- 逻辑数据库读取bseg
- linux环境切换python3版本
- Maven项目编译工具的使用
- Linux !的使用
- python之os模块的基本使用
- python 时间处理_Python如何进行时间处理
- iOS开发之WKWebview(淘宝链接不自动打开淘宝和天猫的app)
- 单片机——电子密码锁设计报告
- 从日文输入法项目看心理模型和实现模型
- win7 64位虚拟机安装
- 三极管与恒流源充放电电路
- 海量数据等概率选取问题
- 优炫数据库携手兆芯发布数据库解决方案
- 【解决方案】SkeyeVSS无线监测视频监控系统在有限空间作业中的保障应用
热门文章
- webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】
- 微信视频号的实时推荐技术架构分享
- 【报告分享】新世代、新圈层:2020垂直圈层营销报告(附下载链接)
- Tensorflow安装错误ERROR: Cannot uninstall ‘wrapt‘.
- 腾讯广告算法大赛 | 第二周周冠军心得分享
- BERT源码分析PART I
- 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
- python获取调用函数的注释,如何使用函数注释验证函数调用类型
- 吴恩达机器学习2——单变量线性回归
- Easy-RSA 3快速入门自述文件