如何将LXD容器Ubuntu镜像从16.04更新到18.04

时间:2020-01-09 10:44:01  来源:igfitidea点击:

我在Ubuntu Linux 16.04 LTS lxd Linux容器中运行我的应用程序。
要将Ubuntu 16.04升级到18.04 LTS容器,我运行do-release-upgrade命令,但是却收到错误消息,内容为

Must be connected to a terminal
必须连接到终端。

如何解决从Ubuntu Linux 16.04升级到18.04镜像的问题?
简介由Ubuntu团队支持和创建的LXD容器管理程序。
与ESX相比,它的性能提高了25%。
本教程显示如何将LXD容器Ubuntu 16.04 LTS镜像升级到18.04 LTS镜像。

如何更新LXD容器

升级名为utls-www的LXD容器Ubuntu镜像的过程如下:

  • 登录到您的Ubuntu容器,运行:lxc exec utls-www bash
  • 更新Ubuntu Linux软件,运行:apt update && apt upgrade
  • 制作Ubuntu Linux容器快照,运行:lxc snapshot utls-www
  • 最后,将LXD容器Ubuntu镜像从16.04更新到18.04,运行:lxc exec utls-www-script/dev/null -c do-release-upgrade

升级LXD容器Ubuntu镜像的命令

让我们详细查看所有命令。

步骤1登录到Ubuntu容器

要列出当前正在运行的Linux容器,请运行:

$ lxc list

获得对名为utls-www的容器的root shell访问,运行:

$ lxc exec utls-www bash

步骤2更新utls-www容器镜像

升级之前,必须先安装发行版的所有可用更新,然后运行apt命令:

# apt update
# apt upgrade

记下您的Ubuntu Linux容器版本,然后返回主机:

# lsb_release -a
# exit

步骤3创建容器快照

为了备份目的,创建容器快照,运行:

$ lxc snapshot utls-www
$ lxc info utls-www

步骤4将Ubuntu Linux容器镜像从16.04 LTS升级到18.04

现在,我们为utls-www容器备份了。
现在该开始升级过程了。
运行do-release-upgrade命令,如下所示:

$ lxc exec utls-www -- script /dev/null -c do-release-upgrade

按[Enter]键。
你想继续吗?
您是否要继续升级Ubuntu Linux容器镜像?

系统可能会提示您替换或者保留现有的配置文件。
例如,我将utls-www用于Nginx/PHP-fmp服务。
出现提示时,我将保留nginx.conf和其他配置文件:

默认操作是保留当前版本。
我将通过按N或者O保留我当前安装的版本

Ubuntu Linux容器镜像升级已完成。
您要重新启动Linux容器吗?
您也可以手动重新启动容器:

$ lxc restart utls-www

步骤5验证

现在,我们的utls-www Linux容器镜像已更新为最新版本的Ubuntu。
现在是时候验证一切是否按预期进行。
登录到您的容器:

$ lxc exec utls-www bash

要在Ubuntu Linux中查找操作系统版本,请运行:

# lsb_release -a

在ss命令/netstat命令和grep命令/egrep命令的帮助下,验证所有服务是否正在运行并且端口是否打开:

# ss -tulpn
# ps aux
# tail -f /var/log/nginx/error.log
# grep 'something' /var/log/nginx/www.theitroad.local_access.log
# egrep -i 'err|crit|warn' /var/log/nginx/www.theitroad.local_error.log