Compare commits

..

2 Commits

Author SHA1 Message Date
mpabi f486ad61fc l. p25.10 update cloud 2024-10-25 12:52:30 +00:00
filih cf225129a5 added expose-nets 2024-10-23 09:09:50 +02:00
11 changed files with 59 additions and 152 deletions

View File

@ -33,7 +33,24 @@ RUN useradd -m -s /bin/bash user && \
usermod -aG sudo user usermod -aG sudo user
# Opcjonalnie: Ustawienie domyślnego użytkownika # Opcjonalnie: Ustawienie domyślnego użytkownika
# USER user USER user
# Install Vim-Plug for Vim plugin management
RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# Copy the project into the image
#COPY --chown=user:user . /home/user/fapi
#COPY --chown=user:user ./_confs/* ./
COPY ./_confs/* ./
# Install Vim plugins via Vim-Plug
RUN vim +'PlugInstall --sync' +qall
# Set the working directory for installing dependencies
WORKDIR /home/user/work
# Ustawienie domyślnego polecenia # Ustawienie domyślnego polecenia
CMD ["/bin/bash"] CMD ["/bin/bash"]

4
__vp
View File

@ -1,7 +1,7 @@
f() { f() {
sudo docker run --rm -dit --privileged \ sudo docker run --rm -dit --privileged \
-v "$(pwd)/app:/home/user/work" \ -v "$(pwd)/../app:/home/user/work" \
-p 3333:3333 \ -p 4321:4321\
--name "$1" deb su - user; --name "$1" deb su - user;
}; };
f $1 f $1

1
app

@ -1 +0,0 @@
Subproject commit db0752d3e05f90f7fd8dda802b2366f3c6942b87

Binary file not shown.

View File

@ -1,148 +0,0 @@
\documentclass{beamer}
\usepackage{graphicx} % umożliwia wstawiać zdjęcia
% Ustawienia dla polskich napisów
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[polish]{babel}
\usepackage{polski}
%pozwala na zrobienie słowa kolorowego
\documentclass{article}
\usepackage{xcolor}
%dla animacji
\usepackage{animate}
\usetheme{Antibes} % Temat
\usecolortheme{default} % schemat kolorów
% Dane prezentacji
\title{Linux Containers}
\subtitle{czyli Lxc}
\author{Denys Paliichuk i Vlad Cherniuk}
\institute{CKZiU Technik Informatyk 1i}
\date{\today}
\begin{document}
% 1 strona
\begin{frame} %początek
\titlepage % to dane prezentacji na 1 stronie
\end{frame} %koniec
%2 strona
\usebackgroundtemplate{
\centering
\includegraphics
[width=\paperwidth,
height=\paperheight]{denisvlady.png}
}
\begin{frame}{Plan następnych stron}
\transwipe % Dodanie efektu przejścia ( przesunięcie)
\tableofcontents % wstawiasz w następne slajdy section i na tej stronie będzie nazwy tych slajdów i będzie na nich przeżucać
\end{frame}
% 3 strona
\section{Definicja}
\begin{frame}{Co to Linux Containers}
\transfade % Efekt zanikania
\textcolor{white} { Linux Containers (LXC) to metoda wirtualizacji na poziomie systemu operacyjnego, która umożliwia uruchamianie izolowanych instancji systemu operacyjnego na jednym hoście fizycznym.}
\begin{figure} % wstawia zdjęcie
\centering
\includegraphics[width=1\textwidth]{den.png}
\end{figure}
\end{frame}
% 4 strona
\section{Linux Containers ważne pojęcia i zasady, które warto omówić to:}
\begin{frame}{Linux Containers ważne pojęcia i zasady, które warto omówić to:}
\transblindshorizontal % Efekt przesuwania pasków
\begin{itemize}
\item \textbf{\textcolor{blue}{Konteneryzacja}} \textcolor{white}{: Proces tworzenia i uruchamiania kontenerów.}
\item \textbf{\textcolor{blue}{Docker}} \textcolor{white}{: Popularne narzędzie do zarządzania kontenerami.}
\item \textbf{\textcolor{blue}{Namespace}} \textcolor{white}{: Mechanizm izolacji zasobów, który umożliwia kontenerom posiadanie własnej przestrzeni nazw dla procesów, sieci, użytkowników itp.}
\item \textbf{\textcolor{blue}{Cgroups}} \textcolor{white}{: Mechanizm kontroli zasobów, który pozwala na przydzielanie i monitorowanie zasobów systemowych dla kontenerów.}
\item \textbf{\textcolor{blue}{Obrazy kontenerów}} \textcolor{white}{: Wirtualne obrazy, które zawierają wszystkie zależności i konfiguracje niezbędne do uruchomienia aplikacji w kontenerze.}
\end{itemize}
\end{frame}
% 5 strona
\section{Instalacja Linux Containers}
\begin{frame}{Instalacja Linux Containers}
\transwipe % Efekt wymazujący
\begin{itemize}
\item \textbf{\textcolor{blue}{Zaktualizuj listę pakietów:}}\textcolor{white}{ Uruchom polecenie, aby zaktualizować listę pakietów dostępnych do zainstalowania: }\textbf{\textcolor{blue}{sudo apt update}}
\item \textbf{\textcolor{blue}{Zainstaluj LXC:}}\textcolor{white}{ Po zaktualizowaniu listy pakietów, zainstaluj LXC za pomocą polecenia: }\textbf{\textcolor{blue}{sudo apt install lxc}}
\item \textbf{\textcolor{blue}{Uruchom usługę LXC:}}\textcolor{white}{ Usługa LXC powinna automatycznie uruchomić się po instalacji, ale możesz to sprawdzić i upewnić się, że działa poprawnie, wykonując: }\textbf{\textcolor{blue}{sudo systemctl status lxc}}
\item \textbf{\textcolor{blue}{Zarządzanie LXC:}}\textcolor{white}{ Teraz możesz używać różnych poleceń LXC do zarządzania kontenerami, takimi jak tworzenie, uruchamianie, zatrzymywanie, usuwanie itp. Na przykład, aby wyświetlić listę kontenerów, które masz zainstalowane, możesz użyć: }\textbf{\textcolor{blue}{sudo lxc-ls}}
\end{itemize}
\end{frame}
% 6 strona
\section{Tworzenie kontenera Linux Containers}
\begin{frame}{Tworzenie kontenera Linux Containers}
\transblindshorizontal % Efekt przesuwania pasków
\begin{itemize}
\item \textbf{\textcolor{blue}{Utworzenie kontenera LXC:}} \textcolor{white}{Utwórz nowy kontener LXC za pomocą polecenia lxc-create. Na przykład:} \textbf{\textcolor{blue}{lxc-create -n openwrt-container -t download -- -d openwrt -r 18.06 -a amd64}}\textcolor{white}{ To stworzy kontener o nazwie "openwrt-container" z wybraną wersją OpenWRT.}
\item \textbf{\textcolor{blue}{Uruchomienie kontenera:}} \textcolor{white}{Uruchom swój kontener za pomocą polecenia lxc-start:} \textbf{\textcolor{blue}{lxc-start -n openwrt-container}}
\item \textbf{\textcolor{blue}{Zalogowanie się do kontenera:}}\textcolor{white}{ Zaloguj się do kontenera, aby móc przeprowadzić dalszą konfigurację:} \textbf{\textcolor{blue}{lxc-attach -n openwrt-container}}
\end{itemize}
\end{frame}
%7
\section{Instalacja OpenWRT Linux Containers}
\begin{frame}{Instalacja OpenWRT Linux Containers}
\transsplitverticalout
\begin{itemize}
\item \textbf{\textcolor{blue}{Instalacja OpenWRT:}}\textcolor{white}{ W kontenerze zainstaluj OpenWRT tak, jakbyś robił to na zwykłym systemie. Jeśli dostępne są narzędzia do instalacji pakietów, możesz je użyć. Na przykład:}\textbf{\textcolor{blue}{opkg update , opkg install luci}} \textcolor{white}{Także można zainstalować na oficialnej stronie. W wielu dystrybucjach Linux istnieją pakiety narzędzi OpenWRT, które można zainstalować za pomocą menedżera pakietów. Takich jak Ubuntu czy Debian, możesz użyć polecenia apt do instalacji narzędzi OpenWRT.}
\item \textbf{\textcolor{blue}{Konfiguracja routera:}}\textcolor{white}{ Możesz to zrobić za pomocą wiersza poleceń lub interfejsu graficznego. Np: aby skonfigurować interfejs sieciowy, możesz użyć poleceń uci:}
\item \textbf{\textcolor{blue}{uci set network.lan.ipaddr='192.168.1.1'
uci commit network
/etc/init.d/network restart
}}
\end{itemize}
\end{frame}
% 8 strona
\section{Przykłady użycia Linux Containers}
\begin{frame}{Przykłady użycia Linux Containers}
\transboxin % Efekt rozwijania
\begin{itemize}
\item \textbf{\textcolor{blue}{Izolacja aplikacji}}\textcolor{white}{
umożliwiają izolację aplikacji, co pozwala na uruchamianie wielu aplikacji na jednym systemie operacyjnym bez instalowania ich na oddzielnych maszynach wirtualnych.}
\item \textbf{\textcolor{blue}{Testowanie oprogramowania}}\textcolor{white}{
są idealne do testowania oprogramowania, ponieważ umożliwiają izolację środowiska testowego od reszty systemu, co pozwala na szybkie i niezawodne testowanie.}
\item \textbf{\textcolor{blue}{Wdrażanie aplikacji}}\textcolor{white}{
Dzięki Linux Containers wdrażanie aplikacji staje się prostsze i bardziej niezawodne, ponieważ można je uruchomić w izolowanym środowisku, które jest niezależne od reszty systemu operacyjnego.}
\item \textbf{\textcolor{blue}{Skalowanie aplikacji}}\textcolor{white}{
umożliwiają łatwe i elastyczne skalowanie aplikacji, ponieważ można je uruchamiać i zatrzymywać w zależności od obciążenia systemu.}
\end{itemize}
\end{frame}
%9 strona
\section{Narzędzia do zarządzania Linux Containers}
\begin{frame}{Narzędzia do zarządzania Linux Containers}
\transwipe % Efekt wymazujący
\begin{block}{Docker} %robi tabele
Docker jest jednym z najpopularniejszych narzędzi do zarządzania Linux Containers. Pozwala na tworzenie, uruchamianie i zarządzanie kontenerami w izolowanym środowisku.
\end{block}
\begin{block}{Kubernetes}
Kubernetes to platforma do zarządzania kontenerami, która umożliwia automatyzację wdrażania, skalowania i zarządzania aplikacjami w kontenerach.
\end{block}
\begin{figure} % wstawia zdjęcie
\centering
\includegraphics[width=0.5\textwidth]{vlad.png}
\end{figure}
\end{frame}
\end{document}

1
doc/git-log.txt Normal file
View File

@ -0,0 +1 @@
git submodule add -b z1 http://t:f6ad1fe79d0b929d8def3339dafcbf919f311acf@qstack.pl:3000/c2023/p22.10 app

1
run/__ Normal file
View File

@ -0,0 +1 @@
f() { sudo docker run --rm -dit --privileged --name "$1" deb su - user; }; f deb1

6
run/__v Normal file
View File

@ -0,0 +1,6 @@
f() {
sudo docker run --rm -dit --privileged \
-v "$(pwd)/app:/home/user/work" \
--name "$1" deb su - user;
};
f $1

7
run/__vp Normal file
View File

@ -0,0 +1,7 @@
f() {
sudo docker run --rm -dit --privileged \
-v "$(pwd)/app:/home/user/work" \
-p 3333:3333 \
--name "$1" deb su - user;
};
f $1

BIN
s.pdf

Binary file not shown.

24
script/expose-netns.sh Normal file
View File

@ -0,0 +1,24 @@
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 <container id or name>"
exit 1
fi
echo "expose container $1 netns"
NETNS=`sudo docker inspect -f '{{.State.Pid}}' $1`
if [ ! -d /var/run/netns ]; then
sudo mkdir /var/run/netns
fi
if [ -f /var/run/netns/$NETNS ]; then
sudo rm -rf /var/run/netns/$NETNS
fi
sudo ln -s /proc/$NETNS/ns/net /var/run/netns/$NETNS
echo "done. netns: $NETNS"
echo "============================="
echo "current network namespaces: "
echo "============================="
ip netns