Compare commits
2 Commits
borys
...
mpabi-p25.
Author | SHA1 | Date |
---|---|---|
mpabi | f486ad61fc | |
filih | cf225129a5 |
19
Dockerfile
19
Dockerfile
|
@ -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
4
__vp
|
@ -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
app
|
@ -1 +0,0 @@
|
||||||
Subproject commit db0752d3e05f90f7fd8dda802b2366f3c6942b87
|
|
BIN
den-vlad.pdf
BIN
den-vlad.pdf
Binary file not shown.
148
den-vlad.tex
148
den-vlad.tex
|
@ -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}
|
|
|
@ -0,0 +1 @@
|
||||||
|
git submodule add -b z1 http://t:f6ad1fe79d0b929d8def3339dafcbf919f311acf@qstack.pl:3000/c2023/p22.10 app
|
|
@ -0,0 +1 @@
|
||||||
|
f() { sudo docker run --rm -dit --privileged --name "$1" deb su - user; }; f deb1
|
|
@ -0,0 +1,6 @@
|
||||||
|
f() {
|
||||||
|
sudo docker run --rm -dit --privileged \
|
||||||
|
-v "$(pwd)/app:/home/user/work" \
|
||||||
|
--name "$1" deb su - user;
|
||||||
|
};
|
||||||
|
f $1
|
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue