Anda mungkin perlu menginstal paket atau alat tambahan di Container-Optimized OS untuk tugas tertentu, seperti proses debug. Misalnya, debug masalah konektivitas node dengan
menginstal tcpdump di toolbox.
Meskipun tidak menyertakan pengelola paket, Anda dapat menggunakan utilitas toolbox yang telah diinstal sebelumnya untuk menginstal paket atau alat tambahan yang Anda perlukan. Penggunaan
/usr/bin/toolbox adalah metode pilihan untuk menginstal dan menjalankan alat
debug satu kali.
/usr/bin/toolbox pada dasarnya memberi Anda shell di lingkungan
mirip chroot Debian. Saat Anda memanggil /usr/bin/toolbox, perintah berikut akan dijalankan:
docker pulldandocker createuntuk menyiapkan lingkungan. Tindakan ini hanya dijalankan saat pertama kali Anda memanggil/usr/bin/toolbox.systemd-nspawnuntuk menjalankan perintah yang diberikan atau (jika tidak ada perintah) memberikan shell kepada Anda
toolbox memiliki beberapa properti lain yang perlu diingat:
- Memanggil
toolboxsetelah pemanggilan pertama tidak memerlukan daemon Docker yang berfungsi, dan tidak menimbulkan overhead jaringan atau disk. - Lingkungan
toolboxdisiapkan satu kali untuk setiap pengguna yang memanggilnya. Menjalankansudo toolboxakan menyiapkannya untuk penggunaroot. - Lingkungan
toolboxdibuat di/var/lib/toolboxdan tetap ada saat dimulai ulang. - Anda dapat mengakses bagian sistem file root, seperti direktori beranda pengguna, dari dalam lingkungan
toolbox.
Menyesuaikan kotak alat untuk deployment Anda
Dalam contoh berikut, kami mengasumsikan bahwa nama pengguna Anda adalah USER dan nama instance Container-Optimized OS Anda adalah cos-dev.
Anda dapat menyesuaikan image Docker yang digunakan toolbox, serta jalur yang tersedia untuk toolbox di sistem file root. Setelan ini berada di
file /etc/default/toolbox. File /etc/default/toolbox default
biasanya terlihat seperti berikut:
USER@cos-dev ~ $ cat /etc/default/toolbox
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
TOOLBOX_DOCKER_IMAGE="gcr.io/cos-cloud/toolbox"
TOOLBOX_DOCKER_TAG="v20220722"
TOOLBOX_BIND="--bind=/:/media/root/ --bind=/mnt/disks/:/media/root/mnt/disks/ --bind=/var/:/media/root/var/ --bind=/home:/media/root/home/ --bind=/etc/resolv.conf:/etc/resolv.conf"
: ${USER:=root}
- Variabel
TOOLBOX_DOCKER_IMAGEdanTOOLBOX_DOCKER_TAGmenentukan image Docker yang akan digunakan.gcr.io/cos-cloud/toolboxdefault dilengkapi dengan beberapa alat umum seperti Google Cloud CLI yang sudah diinstal sebelumnya. - Variabel
TOOLBOX_BINDmenentukan jalur dari rootfs yang akan tersedia di dalam lingkungan toolbox.
Untuk mengubah setelan default, ubah file /etc/default/toolbox, atau
tentukan nilai baru untuk variabel di ${HOME}/.toolboxrc bagi pengguna yang sesuai. Misalnya, dengan asumsi bahwa Anda ingin toolbox menggunakan fedora:latest sebagai
penampungnya, Anda dapat menjalankan perintah berikut:
USER@cos-dev ~ $ echo "TOOLBOX_DOCKER_IMAGE=docker.io/library/fedora" > "${HOME}/.toolboxrc"
USER@cos-dev ~ $ echo "TOOLBOX_DOCKER_TAG=latest" >> "${HOME}/.toolboxrc"
USER@cos-dev ~ $ toolbox
File /etc/default/toolbox dapat diubah seperti yang ditunjukkan di bawah ini.
USER@cos-dev ~ $ cat /etc/default/toolbox
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
TOOLBOX_DOCKER_IMAGE="gcr.io/cos-cloud/toolbox"
TOOLBOX_DOCKER_TAG="v20220722"
TOOLBOX_DOCKER_IMAGE_TARBALL=<var>[location/to/tarball]</var>
TOOLBOX_BIND="--bind=/:/media/root/ --bind=/mnt/disks/:/media/root/mnt/disks/ --bind=/var/:/media/root/var/ --bind=/home:/media/root/home/"
: ${USER:=root}
USER@cos-dev ~ $ toolbox
Menginstal dan menjalankan alat dari kotak peralatan
Setelah memanggil utilitas toolbox untuk memulai shell, Anda dapat menggunakan
apt-get di dalam container yang dihasilkan untuk menginstal paket. Contoh:
# Inside the toolbox shell
USER@cos-dev ~ $ toolbox
root@cos-dev:~# apt-get update && apt-get install -y htop psmisc
root@cos-dev:~# htop
root@cos-dev:~# pstree -p
root@cos-dev:~# exit
Anda tidak perlu selalu memasukkan toolbox untuk menjalankan perintah di dalamnya. Anda dapat
mengawali perintah dengan toolbox. Misalnya, untuk menginstal dan menjalankan utilitas
strace guna melacak eksekusi daemon Docker, Anda dapat melakukan
hal berikut:
USER@cos-dev ~ $ toolbox apt-get install -y strace
USER@cos-dev ~ $ toolbox strace -p `pidof dockerd`
Google Cloud CLI sudah diinstal sebelumnya di toolbox:
USER@cos-dev ~ $ toolbox
root@cos-dev:~# which gcloud
/google-cloud-sdk/bin/gcloud
# View installed components
root@cos-dev:~# gcloud components list
Your current gcloud CLI version is: 287.0.0
The latest available version is: 295.0.0
...
Perlu diingat bahwa gcloud CLI hanya dapat mengakses resource yang diberi otorisasi untuk diakses oleh instance VM. Baca dokumentasi Compute Engine untuk mempelajari lebih lanjut cara menyediakan instance VM dengan akses ke resource lain.
Baca dokumentasi Google Cloud CLI untuk mempelajari lebih lanjut cara menggunakan gcloud CLI.
Memasukkan dan mengeluarkan file dari toolbox
Sistem file root host dapat diakses di dalam toolbox melalui jalur
/media/root. Di host, direktori root toolbox dapat diakses
melalui jalur berikut:
/var/lib/toolbox/USER-gcr.io_cos-cloud_toolbox-VERSION/root
dengan USER adalah nama pengguna Anda dan VERSION adalah nomor versi toolbox
(misalnya, v20220722).
Contoh berikut menunjukkan cara memasukkan dan mengeluarkan file dari toolbox:
# Access the host filesystem inside the toolbox
USER@cos-dev ~ $ toolbox
root@cos-dev:~# ls /media/root
bin boot dev etc home lib lib64 ...
root@cos-dev:~# cp /media/root/home/USER/some-file .
# Access toolbox directory from the host
USER@cos-dev ~ $ sudo cp some-file /var/lib/toolbox/USER-gcr.io_cos-cloud_toolbox-v20220722/root
# Run a command inside toolbox and save its output in your home directory
USER@cos-dev ~ $ toolbox strace -o /media/root/$HOME/ls.strace ls
USER@cos-dev ~ $ more $HOME/ls.strace
Membersihkan ruang disk yang digunakan oleh toolbox
Penginstalan toolbox menggunakan sekitar 2-3 GB ruang disk
di /var (penggunaan disk bervariasi menurut versi Container-Optimized OS). Untuk
mengosongkan ruang disk yang digunakan oleh toolbox, lakukan tugas berikut bergantung pada
versi Container-Optimized OS Anda:
# remove files in /var/lib/toolbox
sudo rm -rf /var/lib/toolbox/*
# remove container artifacts
sudo ctr images rm $IMAGE_NAME
Anda dapat menjalankan sudo ctr images ls -q untuk menentukan nilai ini. Contoh, IMAGE_NAME=gcr.io/cos-cloud/toolbox:v20220722.