이 포스트는 2019년 6월 29일 토요일, SK플래닛 T아카데미에서 진행됐던 세미나에 가서 청강하고 작성했습니다. 현재 세미나 강의와 자료는 추후 이 곳 에서 확인하실 수 있습니다. 노트 필기식으로 작성한 내용이기에, 존댓말을 사용하지 않은 점 참고하시기 바랍니다.AWS Lightsail 서비스로 실습 진행되었습니다.
* 발표자 : 김충섭 (퍼플웍스) 님
개발 환경 설정 jq - docker - k3s - Local path provisioner - code server 설치
Docker 실습 시작
‘19차 T아카데미 세미나 : 컨테이너 기반 가상화 플랫폼 도커(Docker)의 이해’ 블로그 포스트 참고
페이지 를 참조하며 실습을 합니다.
컨테이너 실행
컨테이너 목록
컨테이너 로그
컨테이너 종료
컨테이너 삭제
이미지 목록
네트워크 생성 1 docker network create app-network
네트워크에 연결된 컨테이너 생성 1 2 3 4 5 6 7 8 9 # mysql 컨테이너 실행docker run -d \ -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ --name mysql \ --network=app-network \ mysql:5.7 # mysql 컨테이너에 접속하여 mysql 실행docker exec -it mysql mysql
이후 동작해야하는 항목 (WordPress 연동 DB 구축)
1 2 3 4 create database wp CHARACTER SET utf8;grant all privileges on wp.* to wp@'%' identified by 'wp' ;flush privileges ;quit
1 2 3 4 5 6 7 docker run -d -p 8000:80 \ --network=app-network \ -e WORDPRESS_DB_HOST=mysql \ -e WORDPRESS_DB_NAME=wp \ -e WORDPRESS_DB_USER=wp \ -e WORDPRESS_DB_PASSWORD=wp \ wordpress
예제
문제 에 대한 제가 작성한 답입니다. 답이 아닐 수 있으니 참고해주세요.
풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 docker run -d -p 27017:27017 \ --network=app-network \ --name mongodb mongo:4 docker run -d -p 8887:8887 \ -e PORT=8887 \ -e GUESTBOOK_DB_ADDR=mongodb:27017 \ --network=app-network \ --name apiserver \ subicura/guestbook-backend:latest docker run -d -p 8888:8888 \ -e PORT=8888 \ -e GUESTBOOK_API_ADDR=apiserver:8887 \ --network=app-network \ --name guestbook \ subicura/guestbook-frontend:latest
이름은 소문자로 지정해주세요 (대문자로 지정하면, 네트워크 결합이 안됩니다)
정리 1 2 3 docker stop xxx docker rm xxx docker system prune -a
참고 : prune 시도 화면
이전
이후
Docker-compose 실습 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 version: '3' services: mongodb: image: mongo:4 ports: - "27017:27017" restart: always backend: image: subicura/guestbook-backend:latest ports: - "8887:8887" environment: PORT: "8887" GUESTBOOK_DB_ADDR: "mongodb:27017" restart: always frontend: image: subicura/guestbook-frontend:latest ports: - "8888:8888" environment: PORT: "8888" GUESTBOOK_API_ADDR: "backend:8887" restart: always
restart:always
이 옵션을 줘야 순서에 상관없이 실행이 되더라도 오류없이 모두 실행이 된다. docker-compose up 을 하면 기재된 순서에 상관없이 1-3-2 2-3-1 3-2-1 1-2-3 등의 랜덤 순서로 실행되기 때문에 반드시 restart:always 옵션을 기재해야한다.
depends_on
이 옵션은 docker-compose 구형 버전 작성시 의존성을 명시해 순서대로 실행시킬 수 있다.