ubuntu 18.04 server 安装 lxc 配置网络 并部署Tomcat
ubuntu 18.04 server 安装 lxc 配置网络 并部署Tomcat1、问题描述2、问题解决安装lxc 容器配置网络参数配置java环境,并跑Tomcat克隆lxc 容器3、总结1、问题描述最近应老师要求,需要安装lxc容器,并跑一个java程序。网上找了一大堆资料,没有一站式的博客,这里从0到完整运行。记录一下,防止后面的人踩坑。2、问题解决安装lxc 容器首先准备一个ubuntu
1、问题描述
最近应老师要求,需要安装lxc
容器,并跑一个java
程序。网上找了一大堆资料,没有一站式的博客,这里从0到完整运行。记录一下,防止后面的人踩坑。
2、问题解决
安装lxc 容器
首先准备一个ubuntu 18.04 server
的虚拟机。然后安装 lxc
。运行
sudo apt install lxc -y
然后创建Ubuntu
的LXC
容器,使用清华源加速,命令如下:
lxc-create -t download -n mylxc-ubuntu2 -- --dist ubuntu --release xenial --arch amd64 --server mirrors.tuna.tsinghua.edu.cn/lxc-images
这里-n
表示容器的名称,-t
表示模板,创建容器后,默认情况下也不会启动它,可以使用以下命令列出所有lxc
容器:
lxc-ls
这里显示了我们创建的容器mylxc-ubuntu2
。要启动容器则运行:
# 启动容器
sudo lxc-start -n mylxc-ubuntu2
然后使用命令
# 显示当前容器
sudo lxc-ls --fancy
查看容器是否启动。
根据控制台输出,可以知道容器启动成功!然后输入一下命令进入容器。
# 进入容器
sudo lxc-attach -n mylxc-ubuntu2
从控制台输出可以知道我们已经进入容器了。
配置网络参数
首先停止容器(在宿主机上运行,不是lxc
容器内),运行:
# 停掉容器
sudo lxc-stop -n mylxc-ubuntu2
查看当前容器状态已经是停止状态。
首先查看网络基本信息。运行ifconfig
。
由输出可以知道我的硬件网卡是ens33
,在宿主主机中添加网桥。修改/etc/network/interfaces
配置文件,查看文件注释,我们需要安装ifupdown
,运行sudo apt install ifupdown
。然后将配置文件改成如下参数。
auto br0
iface br0 inet dhcp
bridge_ports ens33
bridge_fd 0
bridge_maxwait 0
注意这里的192.168.114.105
,114
需要和你主机的网关一致。保存并退出后,执行 /etc/init.d/networking restart
重启网络
然后编辑容器配置文件,设置网桥为自定义网桥。
vim /var/lib/lxc/mylxc-ubuntu2/config
修改图中画框位置。然后在修改/etc/network/interfaces
文件 ,添加
auto ens33
iface ens33 inet manual
保存并退出,接着开启并进入容器。
sudo lxc-start -n mylxc-ubuntu2
sudo lxc-attach -n mylxc-ubuntu2
这里我们发现已经有我们的对外ip
了,在宿主机(虚拟机宿主机测试网络是否通畅),运行ping 192.168.114.146
可以ping 通,网络通畅。
配置java环境,并跑Tomcat
首先在容器内新建文件夹存放 jdk
和Tomcat
文件,运行mkdir -p /usr/local/chen/softwware/jdk
。然后将文件上传到该目录下。在宿主机上为:/var/lib/lxc/mylxc-ubuntu2/rootfs/usr/local/chen/softwware/jdk
。在该目录查看上传上来的文件。
然后对文件进行解压。
tar -zxvf apache-tomcat-8.5.55.tar.gz
tar -zxvf jdk-8u221-linux-x64.tar.gz
rm -rf apache-tomcat-8.5.55.tar.gz
rm -rf jdk-8u221-linux-x64.tar.gz
然后配置jdk
环境。输入vim /etc/profile
。在文件末尾添加jdk
和Tomcat
的配置信息。
export JAVA_HOME=/usr/local/chen/softwware/jdk/jdk1.8.0_221
export CATALINA_HOME=/usr/local/chen/softwware/jdk/apache-tomcat-8.5.55
export TOMCAT_HOME=/usr/local/chen/softwware/jdk/apache-tomcat-8.5.55
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${CATALINA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH:${CATALINE_HOME}/bin
修改如下所示:
让配置生效运行并查看jdk
版本
source /etc/profile
java -version
然后启动tomcat
。并在外网验证是否启动成功。
服务启动成功。
克隆lxc 容器
首先停止lxc容器。运行sudo lxc-stop -n mylxc-ubuntu2
。然后到lxc
容器目录下拷贝。
cd /var/lib/lxc
# 拷贝容器
sudo lxc-copy -n mylxc-ubuntu2 -N mylxc-ubuntu_chen
我们发现当前目录多了一个mylxc-ubuntu_chen
文件夹。
查看当前系统容器。
# 显示当前容器
sudo lxc-ls --fancy
启动容器 sudo lxc-start -n mylxc-ubuntu_chen
,然后进入该容器sudo lxc-attach -n mylxc-ubuntu_chen
运行source /etc/profile
使得之前的配置生效。然后开启Tomcat。
在外面访问服务器地址。
同样可以访问成功。
3、总结
书上的代码直接运行绝大部分是对的,但是总有一些软件的更新使得作者无能为力。之前的API是对的,但是之后就废弃了或修改了是常有的事。所以我们需要跟踪源代码。这只是一个小小的问题,如果没有前辈的无私奉献,很难想象我们自己一天能学到多少内容。感谢各位前辈的辛勤付出,让我们少走了很多的弯路!
点个赞再走呗!欢迎留言哦!
更多推荐
所有评论(0)