操作系统

[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容器中拷贝文件)相关推荐

  1. Docker——容器内部执行宿主机的docker命令

    现在有一个需求是在容器内部使用docker命令,但试了一下报命令不存在 解决办法: 把docker相关的命令和依赖使用-v挂载到容器 docker@box:~$ docker run -it -d \ ...

  2. 宿主机172连接容器mysql_开发时从宿主机连接容器中的MySQL

    从宿主机连接Docker容器中的MySQL 刚接触Docker,电脑安装Docker后,使用docker命令pull了一个MySQL5.6的Docker镜像,之后docker run启动创建容器. 可 ...

  3. sock 文件方式控制宿主机_docker的容器可视化工具portainer

    1.搜索镜像 [root@holly ~]# docker search portainer 2.下载portainer [root@holly ~]# docker pull portainer/p ...

  4. 6. 修改docker端口 (映射宿主机和docker容器中的端口)

    文章目录 1. 查询已运行的容器 2. 停止docker服务 3. 进入主机配置文件目录 4. 修改配置文件 5. 验证是否生效 1. 查询已运行的容器 2. 停止docker服务 systemctl ...

  5. centos 安装java_自己动手基于centos7安装docker及如何发布tomcat镜像

    欢迎关注我的头条号:Wooola,专注于Java.Golang.微服务架构,致力于每天分享原创文章.快乐编码和开源技术. 前言 在安装docker之前,先要检查centos7的内核版本,docker要 ...

  6. centos 安装java_在CentOS8上编译安装开源EDA工具——Surelog

    介绍 Surelog是一个支持SystemVerilog 2017的Pre-processor.Parser.UHDM Compiler,可用于语法检查.仿真.综合.形式验证工具的前端. 官网安装说明 ...

  7. 宿主机和docker容器之间的文件拷贝

    1.从容器里面拷文件到宿主机 在宿主机里面执行以下命令: docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为nginx,要从容器里面拷贝的文件路为 ...

  8. 在安卓上安装java_如何在Android上安装JavaCV并使用FrameGrabber

    有人能告诉我我在哪里做错了吗?这些是我遵循的步骤: >从Android开发者网站下载了adt-bundle-windows >创建了一个新项目和一个libs / armeabi文件夹 &g ...

  9. VMware Workstation 16 Pro 中的虚拟机使用宿主机的COM口

    1.在虚拟机关机的状态下,在左侧菜单中选中希望操作的虚拟机,点击编辑虚拟机设置或选择设置 or 2.在弹出的虚拟机设置页面,选择添加 选择"串行端口",然后点击"完成&q ...

最新文章

  1. [导入]Learning.ASP.NET 2.0.with.AJAX.pdf(14.14 MB)
  2. 国内IT出版社的四大软肋
  3. Fabric环境搭建
  4. 8位数控分频器的设计_eda设计数控分频器(实现2~16)分频
  5. python dataframe groupby_【Python数据分析基础】入坑必备的数据预处理操作
  6. 用DL深度学习神经网络绘图---对于程序来说0和1到底是什么样的
  7. 逻辑数据库读取bseg
  8. linux环境切换python3版本
  9. Maven项目编译工具的使用
  10. Linux !的使用
  11. python之os模块的基本使用
  12. python 时间处理_Python如何进行时间处理
  13. iOS开发之WKWebview(淘宝链接不自动打开淘宝和天猫的app)
  14. 单片机——电子密码锁设计报告
  15. 从日文输入法项目看心理模型和实现模型
  16. win7 64位虚拟机安装
  17. 三极管与恒流源充放电电路
  18. 海量数据等概率选取问题
  19. 优炫数据库携手兆芯发布数据库解决方案
  20. 【解决方案】SkeyeVSS无线监测视频监控系统在有限空间作业中的保障应用

热门文章

  1. webpack1.x环境配置与打包基础【附带各种 “坑“ 与解决方案!持续更新中...】
  2. 微信视频号的实时推荐技术架构分享
  3. 【报告分享】新世代、新圈层:2020垂直圈层营销报告(附下载链接)
  4. Tensorflow安装错误ERROR: Cannot uninstall ‘wrapt‘.
  5. 腾讯广告算法大赛 | 第二周周冠军心得分享
  6. BERT源码分析PART I
  7. 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
  8. python获取调用函数的注释,如何使用函数注释验证函数调用类型
  9. 吴恩达机器学习2——单变量线性回归
  10. Easy-RSA 3快速入门自述文件