ການນຳໃຊ້ ຄອນເທນເນີ (Docker/Podman)
ເນື່ອງຈາກແພັກເກັດ NeuroFedora ມີຢູ່ໃນຄັງເກັບຊອບແວ (repositories) ຂອງ Fedora, ພວກມັນຈຶ່ງສາມາດນຳໃຊ້ໃນຄອນເທນເນີທີ່ປັບແຕ່ງເອງໄດ້ ໂດຍການນຳໃຊ້ຄອນເທນເນີພື້ນຖານຂອງ Fedora. ຊຸມຊົນ Fedora ໄດ້ປ່ອຍຮູບພາບຄອນເທນເນີ (container images) ສຳລັບທຸກລຸ້ນຂອງ Fedora ເຊິ່ງສາມາດດາວໂຫລດໄດ້ຈາກແຫຼ່ງລົງທະບຽນຮູບພາບຄອນເທນເນີສາທາລະນະທົ່ວໄປ ເຊັ່ນ Docker Hub.
Podman ແມ່ນສິ່ງທີ່ໃຊ້ປ່ຽນແທນ Docker ໂດຍທີ່ບໍ່ຈຳເປັນຕ້ອງມີສິດເຂົ້າເຖິງໃນລະດັບຜູ້ດູແລລະບົບ (administrative access). ມັນສາມາດນຳໃຊ້ແທນ Docker ໄດ້ເກືອບທຸກກໍລະນີ. ໃນລະບົບ Fedora, ສາມາດຕິດຕັ້ງ Podman ໄດ້ໂດຍການນຳໃຊ້ dnf.
sudo dnf install podman
ສຳລັບການນຳໃຊ້ Docker, ກະລຸນາເບິ່ງໄດ້ທີ່ ເອກະສານຂອງ Docker. Fedora ຍັງລວມເອົາຊອບແວ Toolbox, ເຊິ່ງຊ່ວຍໃຫ້ສາມາດນຳໃຊ້ ສະພາບແວດລ້ອມແບບບັນທັດຄຳສັ່ງ (command line) ໃນຮູບແບບຄອນເທນເນີໄດ້. Toolbox ສາມາດຕິດຕັ້ງໄດ້ໂດຍການນຳໃຊ້ dnf:
sudo dnf install toolbox
ທ່ານສາມາດຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບມັນໄດ້ທີ່ ໜ້າເອກະສານຂອງ Fedora Silverblue.
ການນຳໃຊ້ Fedora release containers ແບບໂຕ້ຕອບ (interactively)
ເຖິງແມ່ນວ່າຮູບພາບຄອນເທນເນີ CompNeuro ຈະມີເຄື່ອງມືຫຼາຍຢ່າງສຳລັບການຄຳນວນທາງປະສາດວິທະຍາ (computational neuroscience), ແຕ່ທຸກໆແພັກເກັດຈາກຄັງເກັບຊອບແວຂອງ Fedora ກໍສາມາດນຳໃຊ້ໃນຄອນເທນເນີໄດ້ ໂດຍການນຳໃຊ້ Fedora release containers ພື້ນຖານ. ຕົວຢ່າງງ່າຍໆຂອງການນຳໃຊ້ຄອນເທນເນີ Fedora ເພື່ອນຳໃຊ້ແພັກເກັດ NeuroFedora ແມ່ນສະແດງຢູ່ດ້ານລຸ່ມນີ້. ໃນທີ່ນີ້, ພວກເຮົາຈະນຳໃຊ້ຮູບພາບຄອນເທນເນີພື້ນຖານຂອງ Fedora, ຕິດຕັ້ງແພັກເກັດທີ່ຈຳເປັນ, ແລະ ທົດສອບການເຮັດວຽກຂອງມັນ.
ກ່ອນອື່ນ, ພວກເຮົາຕ້ອງດຶງ (pull) ຮູບພາບຄອນເທນເນີພື້ນຖານຂອງ Fedora:
podman pull fedora:latest
Resolved short name "fedora" to a recorded short-name alias (origin: /etc/containers/registries.conf.d/shortnames.conf)
Trying to pull registry.fedoraproject.org/fedora:latest...
Getting image source signatures
Copying blob 8fde7942e775 [--------------------------------------] 0.0b / 0.0b
Copying config 79fd58dc76 done
Writing manifest to image destination
Storing signatures
79fd58dc76113dac76a120f22cadecc3b2d1794b414f90ea368cf66096700053
ຈາກນັ້ນພວກເຮົາກໍລັນ (run) ຮູບພາບແບບໂຕ້ຕອບ (interactively).
podman run -it fedora:latest /bin/bash
# ໜ້າຈໍເທີມິນໍໃນຄອນເທນເນີ
[root@95b9db71272f /]#
ນີ້ຈະເຮັດໃຫ້ພວກເຮົາໄດ້ຄອນເທນເນີທີ່ສາມາດເຮັດວຽກແບບໂຕ້ຕອບໄດ້. ພວກເຮົາສາມາດຕິດຕັ້ງແພັກເກັດໄດ້ ຄືກັນກັບການຕິດຕັ້ງໃນ Fedora ປົກກະຕິ, ຕົວຢ່າງ:
[root@95b9db71272f /]# sudo dnf install python3-nest
Last metadata expiration check: 0:06:14 ago on Wed Jan 6 10:41:28 2021.
Dependencies resolved.
================================================================================
Package Arch Version Repo Size
================================================================================
Installing:
python3-nest x86_64 2.20.1-5.fc33 updates 518 k
Installing dependencies:
....
....
Complete!
ຈາກນັ້ນພວກເຮົາສາມາດລັນຄຳສັ່ງໄດ້ຕາມປົກກະຕິ:
[root@95b9db71272f /]# ipython
Python 3.9.0 (default, Oct 6 2020, 00:00:00)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.18.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import nest
[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Creating default RNGs
[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Creating new default global RNG
Jan 06 11:10:43 CopyFile [Error]:
Could not open source file.
Error in nest resource file: /BadIO in CopyFile_
-- N E S T --
Copyright (C) 2004 The NEST Initiative
Version: nest-2.20.1
Built: Aug 10 2020 00:00:00
This program is provided AS IS and comes with
NO WARRANTY. See the file LICENSE for details.
Problems or suggestions?
Visit https://www.nest-simulator.org
Type 'nest.help()' to find out more about NEST.
In [2]: nest.version()
Out[2]: 'NEST nest-2.20.1'
In [3]:
ການສ້າງຮູບພາບຄອນເທນເນີ (container images)
ໃນຂະນະທີ່ການເຮັດວຽກແບບໂຕ້ຕອບນັ້ນມີປະໂຫຍດຫຼາຍ, ການສ້າງຮູບພາບຄອນເທນເນີທີ່ມີຊຸດແພັກເກັດສະເພາະ ເພື່ອເອົາມານຳໃຊ້ຄືນໃໝ່ໄດ້ເລື້ອຍໆນັ້ນຍິ່ງມີປະໂຫຍດກວ່າ. ຕົວຢ່າງ: ສຳລັບການຄົ້ນຄວ້າທີ່ສາມາດເຮັດຊ້ຳໄດ້ (reproducible research), ຮູບພາບຄອນເທນເນີທີ່ລວມເອົາທັງຊອບແວ ແລະ ຊອດໂຄ້ດ (sources) ທີ່ຈຳເປັນທັງໝົດ ສຳລັບຕົວແບບ, ການຈຳລອງ, ແລະ ການວິເຄາະຂໍ້ມູນທີ່ສ້າງຂຶ້ນນັ້ນແມ່ນມີປະໂຫຍດສູງສຸດ.
ຮູບພາບຄອນເທນເນີສາມາດສ້າງຂຶ້ນໄດ້ໂດຍການນຳໃຊ້ Containerfile ມາດຕະຖານ (ຫຼື Dockerfile ສຳລັບ Docker). ທ່ານສາມາດເບິ່ງຄູ່ມືອ້າງອີງທັງໝົດຂອງ Containerfile/Dockerfile ໄດ້ທີ່ ບ່ອນນີ້.
ມາລອງສ້າງຕົວຢ່າງຄອນເທນເນີທີ່ລັນຊຸດຄຳສັ່ງສັ້ນໆນີ້.
#!/usr/bin/env python3
# ຕົວຢ່າງໄຟລ໌ Python
# ບັນທຶກໄວ້ໃນໄດເຣັກທໍຣີປັດຈຸບັນໃນຊື່ nest-test.py
import nest
nest.version()
Containerfile ງ່າຍໆຂອງພວກເຮົາມີລັກສະນະດັ່ງນີ້:
FROM fedora:33 as fedora-33
# ຕິດຕັ້ງແພັກເກັດທີ່ຈຳເປັນ, ໃນກໍລະນີນີແມ່ນ: NEST
RUN sudo dnf install python3-nest -y
COPY nest-test.py .
# ຄຳສັ່ງເລີ່ມຕົ້ນທີ່ຈະໃຫ້ລັນ
CMD ["python", "nest-test.py"]
ຈາກນັ້ນພວກເຮົາສາມາດບິລ (build) ຮູບພາບຄອນເທນເນີຂອງພວກເຮົາ:
ls
Containerfile nest-test.py
podman build -f Containerfile -t neurofedora/nest-test
STEP 1: FROM fedora:33 AS fedora-33
STEP 2: RUN sudo dnf install python3-nest -y
Fedora 33 openh264 (From Cisco) - x86_64 1.9 kB/s | 2.5 kB 00:01
....
Complete!
--> 2efea29a8db
STEP 3: COPY nest-test.py .
--> b23a5c6f90d
STEP 4: CMD ["python3", "nest-test.py"]
STEP 5: COMMIT neurofedora/nest-test
--> da9240e572b
da9240e572b4c08ac010001cbc15cb81ae879c63dca70afa4b3e6f313254b218
ດຽວນີ້ຮູບພາບຂອງພວກເຮົາພ້ອມໃຊ້ງານແລ້ວ:
$ podman image list
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/neurofedora/nest-test latest da9240e572b4 17 seconds ago 911 MB
ເມື່ອລັນແລ້ວ, ມັນຈະເຮັດວຽກຕາມສະຄຣິບງ່າຍໆຂອງພວກເຮົາ:
$ podman run neurofedora/nest-test
[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Creating default RNGs
[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Creating new default global RNG
Jan 06 11:36:36 CopyFile [Error]:
Could not open source file.
Error in nest resource file: /BadIO in CopyFile_
-- N E S T --
Copyright (C) 2004 The NEST Initiative
Version: nest-2.20.1
Built: Aug 10 2020 00:00:00
This program is provided AS IS and comes with
NO WARRANTY. See the file LICENSE for details.
Problems or suggestions?
Visit https://www.nest-simulator.org
Type 'nest.help()' to find out more about NEST.
ໃນທຳນອງດຽວກັນ, ທຸກໆແພັກເກັດຈາກຄັງເກັບຊອບແວຂອງ Fedora ສາມາດນຳໃຊ້ໃນຄອນເທນເນີໄດ້ໂດຍຜ່ານ dnf (ບໍ່ແມ່ນແຕ່ແພັກເກັດຂອງ NeuroFedora ເທົ່ານັ້ນ). ນອກຈາກນີ້, ພວກເຮົາຍັງສາມາດລວມເອົາຊອບແວທີ່ຕິດຕັ້ງຜ່ານ pip ແລະ ຕົວຈັດການແພັກເກັດອື່ນໆ ໄດ້ຄືກັນກັບການໃຊ້ງານໃນລະບົບປົກກະຕິ.
Want to help? Learn how to contribute to Fedora Docs ›