공부합시다!/Container
-
Docker: alpine + nginx Image 만들기공부합시다!/Container 2023. 9. 11. 11:34
alpine 이용하여 간단하게 nginx image를 Dockerifle로 만들어 보겠습니다. 1. nginx.conf 파일 작성 user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; access_log /var/log/nginx/access.log; keepalive_timeout 3000; server { listen 80; root /usr/share..
-
Dockerfile - CentOS7 + HTTPD공부합시다!/Container 2023. 5. 19. 13:21
1. Dockerfile 1.1. docker inspect로 특정 App 실행하기 위해서 사용 1.2. 코드 형태로 image를 제작할 수 있는 TextFile 1.3. 특정 App를 실행하는 image 제작 1.4. 필수는 아니나 Dockerfile를 제작할 때에는 디렉토리 생성 후 해당 디렉토리에 접근해 사용할 것을 권장 # mkdir /test # cd /test # vi Dockerfile FROM httpd:/latest MAINTAINER sdkim # docker build -t test:1.0 . # docker images 1.5. 베이스 이미지, 컨테이너에서 실행되는 명령, 환경 변수 설정, 컨테이너에서 실행되는 데몬 등의 기능이 정의됨. 2. DockerFile의 기본구성 2.1. ..
-
Podman: Container를 System Service로 관리공부합시다!/Container 2023. 1. 25. 00:13
rootless 컨테이너를 구성하기 위해서 일반 사용자는 systemd Unit을 생성해야 합니다. 이를 통해서 systemctl 명령으로 컨테이너를 일반 시스템 서비스로 관리할 수 있습니다. systemd 유닛을 기반으로 컨테이너를 관리하는 방법은 주로 확장할 필요가 없는 기본 및 소규모 배포에 유용합니다. 더 정교하게 확장하고 오케스트레이션하기 위해 Red Hat OpenShift Container Platform과 같은 Kubernetes 기반의 엔터프라이즈 오케스트레이션 플랫폼을 사용할 수 있습니다. 1. 사용자 생성 2. Container 환경 설정 3. Container 실행 4. systemd unit 만들기 5. loginctl 설정 6. Test 순서로 진행합니다.
-
Docker: cp & tar 다중 파일 복사공부합시다!/Container 2023. 1. 5. 00:14
디렉토리내에 많은 파일이 존재한다거나 /proc, /sys, /dev/, tmpfs와 컨테이너내에 사용자가 생성한 디렉토리를 local 시스템으로 가져온다거나 local system의 디렉토리를 container로 복사하기 위해서는 tar를 사용하셔야 합니다. 1. container -> local system 2. local system -> container 순서로 진행 합니다. 1. mysql container 생성 후 /var/lib/mysql 디렉토리내의 모든 파일을 local system의 /root/mysql 로 이동 1.1. /root/mysql 디렉토리 생성 1.2. mysql:5.7 image를 이용하여 m1 container 생성 1.3. m1 container의 /var/lib/my..
-
PODMAN: Network공부합시다!/Container 2022. 12. 20. 00:12
일단 Docker와 다른 점은 docker daemon이 실행되면 docker-0라고 하는 bridge가 생성되는 데 반해 Podman 은 Daemon이 없기 때문에 container 실행전에는 Bridge가 생성되지 않는 다는 점이다. 하지만 Podman 에서 Container가 실행되면 cni-podman0라는 Bridge가 생성되면서 Container 연결할 포트가 veth93f4f860@if3 의 형태로 Docker에서와 마찬가지로 생성이 된다. 물론 iptables의 규칙 역시 이때 생성이 된다. 그렇다면 일반적인 podman network 구성은 docker 동일한 구조! 차이점이라면 1. podman container가 실행되어야 cni-podman0라는 bridge가 생성되며 2. netw..
-
PODMAN: Copy와 Volume Mount공부합시다!/Container 2022. 12. 19. 00:11
podman 역시 docker와 같이 파일및 디렉토리 복사와 volume mount 기능을 제공합니다. 물론 옵션 역시 동일합니다. 헌데 한 가지 생각하셔야 할 점이 있습니다. - docker 역시 동일 파일 카피는 1회성 작업등에만 사용하시고 지속적인 data 업데이트 (예: Web Site변경)나 Container의 Life Cycle을 갖는 중요 데이터(예: MySQL등에서 관리하는 Database)는 Volume Mount 방식으로 활용을 해야 한다는 점입니다. - 둘의 차이가 극명하지요. 해서 오늘은 DB Connection이 가능한 아주 단순한 Web App를 제공해서 파일 복사 방식과 볼륨 마운트 방식으로 활용하는 방법을 포스팅 합니다. 필요한 파일 4개는 첨부해 놓았습니다. 1. index..
-
PODMAN: Registry와 Search공부합시다!/Container 2022. 12. 16. 00:14
장기 과정 강의 진행시 항상 주의 깊게 살피는 부분이 있습니다. 지각, 결석등의 근태 - 요건 그냥 두면 암처럼 쉽게 퍼져 학습 분위기가 완전히 망가집니다 -와 기본적인 예의 입니다. 아주 사소한 것인데 이런 부분이 잘 통제가 되는 반은 전체적으로 학습 분위기가 좋아서 끝까지 문제가 없습니다만 이런 기본적인 사항들이 통제가 되지 않고 예의까지 없어지면 그 반은 교육중, 또는 과정이 끝나도 문제가 많아지게 됩니다. 조금 잘(?)하는 사람은 겸손하게 주변을 도와주면 되고, 조금 못하는 사람은 감사하게 도움을 받으면 됩니다. 못 하는 것 죄가 아닙니다. 잘하기 위해 공부하는 것이니, 하지만 다른 사람의 기회를 가져와 안하는 것은 죄 입니다. All for one, One for all은 이럴때 쓰는 말인가 봅..
-
Docker : Network공부합시다!/Container 2022. 12. 15. 11:29
Docker 에서 사용하는 대표적인 네트워크는 크게 3가지로 구성되어 있습니다.! 1. Bridge 2. Host 3. None 하나씩 살펴보도록 할께요! 1. Bridge 1.1. 쉽게 표현하면 우리가 알고 있는 NAT 기능을 수행합니다. 1.2. Bridge에 무슨 NAT냐 하실텐데 iptables의 Masquerade 기능을 이용하여 DNAT과 SNAT을 구현하고 있습니다. 1.2.1. 위의 그림에서 보시면 httpd 컨테이너를 실행하면 외부의 모든 소스가 내부의 172.17.0.2의 TCP HTTPD로의 통신이 가능하게끔 자동적으로 iptables가 설정 됩니다. 1.3. 물론 스위치의 기능도 당연히 수행합니다. - 동일 네트워크에서의 통신(요걸로 Container간 통신이 가능합니다.) 1.4...