root로 login -> Hostname setting, Password 변경
#passwd
#vim /etc/hostname
admin.example.com로 바꿔주기
Static IP Setting
213.0.113.11/24
Firewall Setting & SELinux Setting : 비활성화
#systemctl stop firewalld
#systemctl disable firewalld
#vim /etc/selinux/config
selinux -> security enhanced Linux
#ping -c 3 8.8.8.8
#route -n
#cat /etc/resolve.conf
#vim /etc/selinux/config
SELINUX=disabled로 바꿔주기
setenforce 설정
getenforce 확인
hostname확인
ip a 해서 213.0.113.11/24 맞는지 확인
ping -c 3 www.google.com으로 핑 확인
getenforce해서 Disabled확인하기
systemctl status firewalld
windows에서 ping 213.0.113.11로 ping 보내보기
xShell 다운로드 후 ssh root@213.0.113.11로 접속
(실무에서는 ssh로 root로 접속은 절대 하면 안됨!! 해킹당할 위험이 있기 때문에)
root 1개, nana 1개 창을 띄움
패키지를 설정해주었다.
#cat /proc/cpuinfo | egrep "vmx|svm"
#lscpu | grep Virtualization
Virtualization: VT-x
Virtualization type: full
#dnf -y install qemu-kvm libvirt virt-install virt-viewer libguestfs-tools
#lsmod | grep kvm
kvm_intel 245760 0
kvm 745472 1 kvm_intel
irqbypass 16384 1 kvm
[root@admin ~]# systemctl enable --now libvirtd
[root@admin ~]# systemctl status libvirtd
네트워크 변경하기
nmcli 명령어 : network를 실시간으로 설정할 수 있는 명령어
Linux는 disk를 partition 해주어야 한다.
servera
213.0.113.3
192.168.10.3
serverb
213.0.113.4
192.168.10.4
ip 설정하는 방법
nmcli con show
mcli connection modify 'Wired connection 1' ipv4.addresses 192.168.10.3/24 ipv4. method
manual
nmcli con down 'Wired connection 1' nmcli con up 'Wired connection 1'
ip a
ping 보내고 확인하는 방법
ping -c 3 8.8.8.8
nmcli connection modify bro ipv4.gateway 213.0.113.2
nmcli connectvirion modify br0 ipv4.dns 213.0.113.2
hostname 바꾸고 확인하는 방법
hostnamectl set-hostname servera.example.com
hostname
su - root
Container
Container의 개념
1. 기존 리눅스 환경 : 자원 격리 사용(CGroup : Control Group) + 특정 디텍토리 권한 제한(chroot : Change Root 최상위 디렉토리) 격리 환경
2. 변경 사항 레이어 형태로 저장하는 파일 시스템(Union FileSystem)
간단히, 격리된 공간에서 프로세스가 동작하게 해주는 가상화 기술
가상환경 vs Container
Container로 만들면 OS가 필요하지 않으므로 VM에서 만드는 것보다 더 많이 만들 수 있다. 그리고 속도 면에서도 Container가 더 우수하다.
여기서 Hypervisor에서 다른 하나의 예시로 openstack이 있다. openstack을 이용하면 VM을 생성하는 것도 가능하다.
VM에는 Ansible, Terraform을 많이 사용한다.
Docker
pod : container의 그룹이다.
docker vs k8s
docker는 만들 수 있는 container의 개수가 정해져있는데 k8s는 무제한으로 container 생성이 가능하다.
Docker의 단계
BUILD단계 : 이미지 생성하기 (Download, Dockerfile)
SHIP단계 : 이미지 저장하기 (Docker Registry - public & private)
RUN단계 : 이미지 실행 & Container 생성
Dockerfile은 내가 스스로 파일 이미지를 만드는 것이다.
Docker Registry는 이미지가 저장되는 곳이다.
Container 안에는 Application이 있다.
Docker Container
layer들이 모여서 Image가 된다.
Container는 ReadOnly layer들인 Image에 Writeable이 가능한 layer를 올린것이다. 그래서 실습에서 database와 table를 생성한 것이다.
Base Image : apache와 emacs가 돌아가려면 기본 OS인 Base Image가 필요
Linux는 bootFileSystem(kernel) + rootFileSystem(명령어)
container 생성 명령어 : docker container create --name webserver -p 8080:80 httpd
container 시작 명령어 : docker container start webserver
container 바로 시작 명령어 : docker container run --name nginx -d -p 8180:80 nginx
container 중지 명령어 : docker container stop nginx
container 재시작 명령어 : docker container restart nginx
container 일시중지 명령어 : docker container pause nginx
container 다시시작 명령어 : docker container unpause nginx
container 내부정보확인 명령어 : docker container inspect nginx
container 접속 및 내부 정보 변경하는 명령어
container의 내용을 수정하는 명령어 : docker container cp index2.html apache_server:/usr/local/apache2/htdocs/
컨테이너 생성, 변경, 확인이 일치해야 한다.
docker container exec -it nginx /bin/bash
echo 'Docker index file test' > /usr/share/nginx/html/i
curl http://127.0.0.1:8180/index.html
container 상태정보 확인 명령어 : docker container stats nginx
container 변경 정보 확인 명령어 : docker container diff apache_server
A : 추가된 파일
D : 삭제된 파일
C : 수정된 파일
container 삭제 명령어 : docker rm -f apache_server
**container Quota