LXC

lxc guest container 與 host 如何複製檔案 – lxc/lxd

通常要在 lxc 與 host 之間複製檔案都會用 scp,但是要打一長串的指令,lxc 提供了 pull 與 push 的功能讓你方便讓兩邊檔案複製。

從 lxc 把檔案複製出來

lxc file pull $target-container/$target-path/$target-file .

把檔案複製到 lxc 裡面

lxc file push $target-file $target-container/$target-path/

資料夾 -r

lxc file push -r $target-dir $target-container/$target-path/

pull 也以此類推,加上 -r。


lxc/lxd container 建立與管理及佈署基本指令 – part. 1

首先登入 lxc

lxc exec lxc00 bash

或是

lxc shell lxc00

安裝及設定必備的環境

sudo cp /etc/apt/sources.list sources.list.default
sudo sed -i 's/archive.ubuntu.com/free.nchc.org.tw/g' /etc/apt/sources.list
sudo apt update && sudo apt dist-upgrade
sudo apt install bash-completion net-tools command-not-found byobu openssh-server curl man-db software-properties-common byobu dnsutils ppa-purge iotop sysstat sshfs virt-what htop git unzip rsync apt-transport-https

必備環境安裝說明:

  • 變更 apt server 到離你最近或是頻寬最佳的,可以參考這篇 挑選最佳的 Ubuntu apt mirror
  • 更新 apt db
  • 安裝基本環境軟體
    • bash-completion net-tools command-not-found byobu openssh-server curl man-db software-properties-common byobu dnsutils ppa-purge iotop sysstat sshfs virt-what

設定 auto completion (ubuntu 這個帳號也要一次)

echo "source /etc/profile.d/bash_completion.sh" >> ~/.bashrc
source /etc/profile.d/bash_completion.sh
su -l ubuntu && echo "source /etc/profile.d/bash_completion.sh" >> ~/.bashrc
source /etc/profile.d/bash_completion.sh

修改密碼

sudo passwd
sudo passwd ubuntu

產生金鑰不用密碼登入

ssh-keygen -t ed25519 -f ~/.ssh/192.168.1.2 -C ubuntu@192.168.1.2
ssh-copy-id -p 22 -i ~/.ssh/192.168.1.2.pub ubuntu@192.168.1.2
ssh ubuntu@192.168.1.2

修改 sshd 設定

sudo vim /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes

lxc/lxd container 建立與管理及佈署基本指令 – part. 0

查看有哪些 lxc

lxc list

查詢有哪些 image 可以安裝

lxc image list images: | grep -i ubuntu

建立 lxc 的 container

lxc launch images:ubuntu/focal/amd64 focal

啟用 lxc 的 container

lxc start focal

停用(關機) lxc 的 container

lxc stop focal

Container 的 info

lxc info focal

刪除 lxc 的 container

lxc delete focal

Login to your container

lxc exec $my-container bash

lxc 管理基本指令

# 查看有哪些 profile
lxc profile list
# 查看 profile - default 內容
lxc profile show default
# 編輯 profile - default 內容
lxc profile edit default

# 查看有哪些 network 可用
lxc network list
# 查看 br0 這個 network 內容
lxc network show br0

# 查看有哪些 storage
lxc storage list
# 查看 zfspool 這個 storage 內容
lxc storage show zfspool
# 編輯 zfspool 
lxc storage edit zfspool
# 建立 storage
lxc storage create pool1 zfs source=/dev/sdX zfs.pool_name=zfspool

Storage configuration


lxdui – Web-based LXD/LXC GUI Administration

Update: Wed Jan 6 22:33:21 CST 2021

lxdui 是一個圖形化界面,讓你方便管理 lxc/lxd 的開放原始碼界面。不過根據 git 上次變更時間是十個月前了XD 不過還是能用,畢竟很方便!

安裝 lxdui

sudo apt install -y git build-essential libssl-dev python3-venv python3-pip python3-dev zfsutils-linux bridge-utils
git clone https://github.com/AdaptiveScale/lxdui.git
pip3 install --upgrade pip
cd lxdui
sudo python3 setup.py install
sudo lxdui init
sudo lxdui start

執行 lxdui

sudo lxdui init
sudo lxdui start

登入 lxdui

http://127.0.0.1:15151

  • 預設帳號:admin
  • 預設密碼:admin

lxdui 設定(CLI Commands)

預設 port 為 15151,如要更改如下:

變更登入的 port

app/__metadata__.py:lxdui.port = 15151
Binary file app/__pycache__/__metadata__.cpython-36.pyc matches
build/lib/app/__metadata__.py:lxdui.port = 15151
Dockerfile:# docker run -it -p 15151:15151 -v /var/snap/lxd/common/lxd/unix.socket:/var/snap/lxd/common/lxd/unix.socket lxdui
Dockerfile:EXPOSE 15151
README.md:[http://127.0.0.1:15151](http://127.0.0.1:15151)
tests/test_conf.py:        self.assertEqual(c, '15151')

lxdui 其他指令(CLI Commands)

直接照抄喔XD 因為沒有很難!

lxdui init -- configures lxdui upon first use - admin password, generate certs

lxdui start -- start the app and display the endpoint URL http://hostname:port

lxdui stop -- stop the app

lxdui restart -- restart the app

lxdui status -- show the pid and the http endpoint for the UI http://hostname:port

lxdui config show -- print out running config to console

lxdui config set -c <path_to_conf_file> -- use external conf file

lxdui config set <key> <value> -- set the value for a configuration key

lxdui cert add -- add existing certs from file path

lxdui cert create -- generate new SSL certs (overwrite old files)

lxdui cert list -- list SSL certs

lxdui cert delete -- remove SSL certs

lxdui user add -u <username> -p <password> -- create a new user that can access the UI

lxdui user update -u <username> -p <password> -- the user specified in lxdui.admin.user can't be deleted

lxdui user delete -u <username> -- remove a user from the auth file

lxdui user list -- list the users in the auth file

回到頂端