Docker众所周知,方便了运维成本,有一次编译到处运行的说法,是不是和java的JVM很像呢?,但是这两种是完全不同的虚拟技术,这里不深入讨论。
Docker安装前提:
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本
CentOS 7 的内核一般都是3.10的,而CentOS 6.X 的内核一般都是2.6,在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到3.10版本。
可以再官网下载centos7,如果是低内核,需要升级,升级步骤:
#升级内核版本(包含aufs)
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel
#修改引导的内核
vi /etc/grub.conf
#把默认的引导文件设置为0。因为升级内核之后,新的内核在第一个(0)位置。
安装上centos7之后,所有的命令最好用sudo,配置sudo,接下来将yum更新到最新
sudo yum update -y
sudo yum -y install docker
sudo systemctl start docker
#查看docker版本
sudo docker version
#设置为开机启动
sudo systemctl enable docker
#拉去中国docker仓库中的centos
sudo docker pull registry.docker-cn.com/library/centos:7.4.1708
运行
sudo docker run -i -t -v /root/software/:/mnt/software/ 3afd47092a0e /bin/bash
重新开启一个session
#查看容器,注意NAMES
docker ps
#为了好记,修改NAMES
docker rename serene_jennings song_container_name
#将jdk拷贝到opt目录下
docker cp jdk-8u171-linux-x64.tar.gz song_container_name:/opt
#解压
tar -zxvf jdk-8u171-linux-x64.tar.gz -C .
mv jdk1.8.0_171/ /opt/jdk/
chown root:root /opt/jdk -R
配置环境变量
#建立JAVA_HOME目录
mkdir jvm
#移动
mv /opt/jdk /usr/lib/jvm
#设置环境变量
vim ~/.bashrc
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#立即生效
source ~/.bashrc
#验证是否成功
java -version
遇到的问题列表:
1,/var/lib/docker/aufs/mnt/d7445f6482e3addf09808b5f73444050455e1c394a90a33e88d86beeac05206a-init/.dockerenv文件没有权限,拒绝访问。
临时关闭selinux
setenforce 0