https://lxd.readthedocs.io/en/stable-3.0/ | Container, Network
แรกเริ่มเดิมทีไม่ได้สนใจเจ้า Linux Container เลยเพราะคิดว่าใช้ยาก หาข้อมูลภาษาไทยหาไม่เจอ เราจะเจอแต่ Docker เยอะเลย
เจ้าตัว Docker พยายามลองใช้หลายครั้งแล้ว ลงเรียนออนไลน์ก็แล้ว ส่วนตัวรู้สึกว่าการ Config ค่าใน Container ทำได้ไม่เหมือนกับที่เราลงกับเครื่องจริงๆ เลยลองหาข้อมูลดูว่ามีตัวเลือกอื่นๆ อีกไหม ซึ่งก็เจออยู่หลายตัว แต่ในนี้จะไม่ขอพูดถึง เพราะไม่ได้อ่านตัวอื่น เลือก Linux Container แล้วก็ศึกษาตัวเดียวนี้เลย และก็พบกับตัวเองว่าคำสั่งหลาย หรือทุกคำสั่งเลยมั้ง เราใช้ใน Container ได้เหมือนลงจริงๆ และก็ลองไปเรื่อยๆ จนคิดว่าเราน่าจะถูกจริตกับตัวนี้ที่สุดแล้วมั้งๆ
การติดตั้ง Linux Container ต้องใช้ Ubuntu นะเพราะเขาค่ายเดียวกันทำมาเพื่อกันและกันก็จะลงง่ายมาก
sudo snap install lxd
เมื่อติดตั้งเสร็จให้เราทำการ Initial ก่อน
sudo lxd init # เพิ่มเข้ากลุ่ม LXD เวลาใช้งานจะได้ไม่ต้องค่อยพิมพ์ sudo sudo usermod --append --groups lxd sarankon
คำสั่งมีอะไรบ้างอันนี้แบบไม่จัดกลุ่ม ให้เราพิมพ์
คำสั่ง lxd --help
sudo lxd --help Description: The LXD container manager (daemon) This is the LXD daemon command line. It's typically started directly by your init system and interacted with through a tool like `lxc`. There are however a number of subcommands that let you interact directly with the local LXD daemon and which may not be performed through the REST API alone. Usage: lxd [flags] lxd [command] Available Commands: activateifneeded Check if LXD should be started help Help about any command import Import existing containers init Configure the LXD daemon shutdown Tell LXD to shutdown all containers and exit version Show the server version waitready Wait for LXD to be ready to process requests Flags: -d, --debug Show all debug messages --group The group of users that will be allowed to talk to LXD -h, --help Print help --logfile Path to the log file --syslog Log to syslog --trace Log tracing targets -v, --verbose Show all information messages --version Print version number Use "lxd [command] --help" for more information about a command.
คำสั่ง lxc --help
sudo lxc --help Description: Command line client for LXD All of LXD's features can be driven through the various commands below. For help with any of those, simply call them with --help. Usage: lxc [command] Available Commands: alias Manage command aliases cluster Manage cluster members config Manage container and server configuration options console Attach to container consoles copy Copy containers within or in between LXD instances delete Delete containers and snapshots exec Execute commands in containers export Export container backups file Manage files in containers help Help about any command image Manage images import Import container backups info Show container or server information launch Create and start containers from images list List containers move Move containers within or in between LXD instances network Manage and attach containers to networks operation List, show and delete background operations profile Manage profiles project Manage projects publish Publish containers as images remote Manage the list of remote servers rename Rename containers and snapshots restart Restart containers restore Restore containers from snapshots snapshot Create container snapshots start Start containers stop Stop containers storage Manage storage pools and volumes version Show local and remote versions Flags: --all Show less common commands --debug Show all debug messages --force-local Force using the local unix socket -h, --help Print help --project string Override the source project -q, --quiet Don't show progress information -v, --verbose Show all information messages --version Print version number Use "lxc [command] --help" for more information about a command.
ตัวที่น่าจะใช้งานกับ Container ก็เป็นพวก
คำสั่ง สร้าง ลบ ดูรายการ = launch, delete, list
คำสั่ง นำเข้า นำออก (Backup) = import, export
คำสั่ง เริ่มทำงาน หยุดทำงาน = start, stop, restart
คำสั่ง ดูข้อมูล แก้ไขข้อมูล = info, config
คำสั่ง จัดการ Snapshot = snapshot, restore
คำสั่ง จัดการ Image = publish, image list, image import, image export, image delete
คำสั่ง สร้าง launch, ลบ delete, ดูรายการ list
# ดูรายการ Image มีให้เราใช้ หลังจากที่เราใช้คำสั่ง launch จะเป็นการ โหลด Image มาเก็บไว้ที่เครื่องเราเพื่อให้เราสร้างครั้งต่อๆ ไปเร็วขึ้น lxc image list images: | grep -C1 -i centos # สร้าง Container และจะเริ่มทำงานเมื่อสร้างเสร็จ lxc launch [remote-name]:image-name container-name lxc launch images:centos/7 centos7 # ดูรายการ Container lxc list # สั่งให้หยุดการทำงานก่อนที่เราจะลบ lxc stop centos7 lxc delete centos7
คำสั่ง สร้างแบ็คอัพไฟล์ export, โหลดแบ็คอัพไฟล์ import
#lxc export container-name backup-file lxc export centos-7 centos-7-bakcup #lxc import backup-file lxc import centos-7-backup #ไฟล์ชื่อ Container จะได้เป็นชื่อเดิม ลอง List ดู lxc list
ตัวอย่างการ Map Storage ระหว่าง Container กับ Host
# ดูการตั้งค่าของ Container centos-7 sudo lxc config device list centos-7 sudo lxc config device show centos-7 # สร้าง Mapping ระหว่าง Host กับ Container share-device เป็นชื่อที่เราตั้งขึ้นเองไว้อ้างอิง source เป็นของ Host ,path เป็นของ Container lxc config device add centos-7 share-device disk source=/home/share path=/home/share
ตัวอย่างการ Forward Port ผ่าน iptables ก็จะยาวๆ หน่อย
# เพิ่มการ Forward ให้ Port 80 ที่เครื่อง Host จะส่งต่อไปที่ Container IP 10.96.242.212 Port 80 # enp0s3 ให้ดูว่าเป็นช่องไหน ดูได้โดยใช้คำสั่ง ip address sudo iptables -t nat -A PREROUTING -p tcp -i enp0s3 --dport 80 -j DNAT --to-destination 10.96.242.212:80 # ดูรายการที่เราเคยทำการ Forward ไว้ sudo iptables -t nat -L PREROUTING # ลบรายการที่เราทำการ Forward ไว้ # `sudo iptables -t nat -D PREROUTING --line-number` sudo iptables -t nat -D PREROUTING 1
อ้างอิงข้อมูลอื่น
Digital Ocean | Setup and Use LXD on Ubuntu 16.04
ไม่มีความคิดเห็น:
แสดงความคิดเห็น