도커 이미지 생성 1. 도커 이미지 생성 - #1. 실행중인 컨테이너를 이용해 이미지 제작 - docker commit 대상컨테이너 이미지명:태그 (ex)docker commit db1 mydb:1.0) - #2. Dockerfile 생성 - vim Dockerfile 입력 후, 다음과 같이 작성 FROM nginx RUN ["mkdir", "/test"] RUN ["mkdir", "-p" ,"/web/site1/public"] COPY ./html /web/site1/public COPY ./conf /etc/nginx/conf.d - #3. 도커 이미지 빌드 - docker build -t 이미지명:태그명 도커파일 경로 (docker build -t myimg:1.0 /home/user1/work/n..
도커 컴포즈를 이용해 컨테이너 관리 1. 도커 컴포즈를 이용해 컨테이너 관리 - 도커 컴포즈는 yaml 포맷으로 작성되며 여러 개의 컨테이너의 실행을 한 번에 관리를 할 수 있게 해 줌 - docker compose documentation - docker compose 버전 정보 - docker-compose.yaml 파일 생성 : vim docker-compose.yaml] version: "3.8" services: web: image: "nginx" ports: - 8080:8080 volumes: - /home/user1/work/nginx/conf:/etc/nginx/conf.d - /home/user1/work/nginx/html:/web/site1/public fpm: image: "bit..
mariadb 컨테이너 실행 1. mariadb 컨테이너 실행 - #1. 이미지 다운로드 : docker pull mariadb - #2. 컨테이너 실행 - docker run -d --name db -p 3307:3306 --env MARIADB_ROOT_PASSWORD=1234 --rm mariadb:latest ※ MARIADB_ROOT_PASSWORD는 컨테이너 내부에서 사용할 mysql root 계정의 비밀번호 - #3. DB 생성을 위한 컨테이너 내부 진입 : docker exec -it db bash - #4. mysql 보안 설정 : /usr/bin/mariadb-secure-installation - 첫 번째 : 위에서 설정한 root 비밀번호 - 두, 세 번째 : n - 나머지 : y ..
컨테이너의 네트워크 통신 1. 컨테이너의 네트워크 통신 - 컨테이너로 네트워크 통신하는 방법은 여러 방법이 존재 - 컨테이너 → 외부 - 컨테이너 → 내부 - 컨테이너 → 호스트PC(본인의 Centos7) - 컨테이너 → 컨테이너 2. Case1. 컨테이너 → 외부 - wget으로 통신 (컨테이너가 켜져 있으면 종료(docker stop app1)) - #1. 컨테이너 실행 : docker run --name=app1 -d -p 8031:8099 --rm -v /home/user1/work/html:/web/site1/public -v /home/user1/work/conf/nginx:/etc/nginx nginx - #2. 컨테이너의 내부 쉘에 접속 : docker exec -it app1 bash -..
컨테이너의 nginx 설정과 root 폴더 관리하기 1. 컨테이너의 nginx 설정과 root 폴더 관리하기 - #1. 설정 파일용 작업 폴더 생성 : mkdir -p /home/user1/work/conf/nginx - #2. 기존의 nginx 설정 폴더를 작업폴더로 복사 : cp -r /etc/nginx/ /home/user1/work/conf/ - #3. 가상호스팅 설정 세팅 (참고자료) : vim /home/user1/work/conf/nginx/conf.d/vhost.conf listen 8099; server_name project1; location / { root /web/site1/public; index index.html; } - #4. root 디렉터리용 작업 폴더 생성 : mkdi..
도커 마운트 볼륨 1. 마운트 볼륨 - 호스트 PC 특정 폴더와 컨테이너 특정 폴더를 동기화 - 컨테이너의 파일이 호스트를 덮어쓰면 호스트에 문제가 생길 수 있으므로 호스트의 파일을 컨테이너로 덮어 씀 2. 마운트 볼륨 사용하기 - 작업 폴더 생성 - mkdir -p /home/user1/work/html - 작업 폴더와 컨테이너 nginx의 root폴더(/usr/share/nginx/html)를 마운트 볼륨 설정 - docker run --name=app1 -d -p 8031:80 --rm -v /home/user1/work/html:/usr/share/nginx/html nginx - 브라우저로 확인 (페이지가 뜨지 않음) → 이유는 작업 폴더의 내용으로 컨테이너의 폴더를 덮어 쓰는데 작업 폴더가 비..