Skip to content

在docker中安装ubuntu

介绍

近期,在docker中安装了一个ubuntu来挂着网页等,但是在操作过程中,出现了很多比较麻烦的操作,对此,在这里做一个详细完整的记录,避免以后要重复查找资料。

ubuntu安装

  1. 在docker环境中安装ubuntu系统。首先,通过搜索命令查找可选的ubuntu镜像:
# 需要切换到 root 用户
sudo -i
docker search ubuntu

docker search ubuntu

可以获得如上所示的查询结果,其中第一个为ubuntu官方的镜像,一般保持最新版本。下面第三个是非常常用的一个版本,是 Ubuntu14.04,版本比较早,可能对有些安装包不是很友好。

  1. 拉取镜像到本地:
docker pull ubuntu

拉取完以后,可以在群晖的docker管理界面看到对应的镜像:

  1. 本地配置并启动容器

依次对配置项进行配置:

最后启动容器。启动完以后,开始使用,但是问题来了,ssh没有,需要安装,安装完以后设置开机自启ssh,发现systemctl也没有,总的来说,啥都没有。也正因为这样,所以我才写了这个笔记!

ubuntu配置

  1. ssh安装与启动
# 安装
sudo apt-get install openssh-server

# 启动
/etc/init.d/ssh start

# 设置开机自启动
sudo systemctl enable ssh

然而,没有 systemctl,于是安装 systemctl

  1. systemctl 安装
# 安装
sudo apt-get install systemctl -y

然而,重启后任然发现ssh并没有启动。

  1. 开机自启动自定义脚本

  2. 方式一:通过 rc.local 执行命令

首先编辑 /lib/systemd/system/rc-local.service 文件:

# 打开文件
vim /lib/systemd/system/rc-local.service
# 保存后运行
chmod 777 /lib/systemd/system/rc-local.service

添加如下内容并保存:

[Install]
WantedBy=multi-user.target  
Alias=rc-local.service

编辑 /etc/rc.local 文件

# 必须要的 一定不能忘记
#!/bin/sh  

# root用户 命令作为测试
whoami >> /user/test.log 

# 普通用户
su - wuhaiming -c "whoami >> /home/wuhaiming/test.log"

exit 0

保存退出后,给rc.local权限:

sudo chmod +x /etc/rc.local

重启后,失败!

有教程说是需要创建软链接,因为 “systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接”.

ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/

然后,依然失败!

  • 方式二:

经过上述失败,发现一个核心问题:docker内的ubuntu并不是完整的系统,因此不能参考上述常规操作。于是重新寻找参考资料,最后在开源博客找到了Docker 容器内 ubuntu 安装 ssh 并设置开机启动

在这个博客中,当完成ssh安装后,有说明:“正常在 linux 操作系统内设置服务自启动的方法一般都是使用 systemctl,但是 Docker 容器没有 systemctl 权限,因此使用命令脚本”。下面便是脚本方法。

# 创建启动脚本
vim /root/start_sh.sh

# 添加如下内容
LOGTIME=$(date “+%Y-%m-%d %H:%M:%S”)
echo “[$LOGTIME] startup run…” >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log

# 保存退出后编辑.bashrc文件,在后面添加并保存
if [ -f /root/start_ssh.sh ]; then
      ./root/start_ssh.sh
fi

# 最后的重点,给 start_sh.sh 设置权限
chmod u+x start_sh.sh

重启测试发现一切ok![后来也发现一个新的问题:每次登录root账户都会运行一遍启动代码,感觉和理想的开机运行有差距,后续再找新的办法。]