[docker] 도커 네트워크 By starseat 2023-01-16 16:26:26 server/oss Post Tags # 도커 네트워크 - 웹서버와 DB 등 컨테이너를 따로 올렸을 경우 이 둘을 연결하는게 필요함. - 이때 가상 네트워크를 만들어 이 네트워크에 두 개의 컨테이너를 소속시켜 연결해야 함. ## 생성 - 옵션이나 인자를 추가하는 경우는 거의 없음. - 보통은 네트워크를 생성한 다음 컨테이너에서 네트워크에 접속하게 설정 함. - 커맨드 ```text docker network create {네트워크 이름} ``` ## 삭제 ```text docker network rm {네트워크 이름} ``` ## 네트워크 관련 커맨드 | 커맨드 | 내용 | 생략 가능 여부 | 비고 | | -- | -- | -- | -- | | connect | 네트워크에 컨테이너를 새로이 접속 | X | 거의 사용하지 않음 | | disconnect | 네트워크에 컨테이너 접속 해제 | X | 거의 사용하지 않음 | | create | 네트워크 생성 | X | | | inspect | 네트워크 상세 정보 확인 | X | 거의 사용하지 않음 | | ls | 네트워크 목록 확인 | X | 거의 사용하지 않음 | | prune | 현재 컨테이너 접속이 없는 네트워크 삭제 | X | 거의 사용하지 않음 | | rm | 지정한 네트워크 삭제 | X | 거의 사용하지 않음 | ## 사용 예 - 먼저 `network`를 생성 한 후에 - `MySQL` 과 `Wordpress` 를 네트워크 연동하는 예 이다. ### 네트워크 생성 - 네트워크 이름: wordpress00net1 ```text docker network create {네트워크 이름} ``` ### MySQL - MySQL 컨테이너 사용 예 ```text docker run --name {컨테이너 이름} -dit --net={네트워크 이름} -e MYSQL_ROOT_PASSWORD={MySQL Root 암호} -e MYSQL_DATABASE={데이터베이스 이름} -e MYSQL_USER={MySQL 사용자 이름} -e MYSQL_PASSWORD={MySQL 암호} mysql --character-set-server={문자 인코딩} --collation-server={정렬 순서} --default-authentication-plugin={인증 방식} ``` - 옵션 | 옵션 | 항목 | 샘플 값 | | -- | -- | -- | | --net | 네트워크 이름 | wordpress00net1 | | --name | MySQL 컨테이너 이름 | mysql00ex1 | | -dit | 실행 옵션 | | | -e MYSQL_ROOT_PASSWORD | MySQL Root 암호 | rootpass | | -e MYSQL_DATABASE | MySQL 데이터베이스 이름 | wordpress000db | | -e MYSQL_USER | MySQL 사용자 이름 | wordpress000user | | -e MYSQL_PASSWORD | MySQL 암호 | wordpress000pass | - (MySQL) 인자 | 항목 | 인자 | 값 | 설명 | | -- | -- | -- | -- | | 문자 인코딩 | --character-set-server= | utf8mb4 | 문자 인코딩으로 UTF8 사용 | | 정렬 순서 | --collation-server= | utf8mb4_unicode_ci | 정렬 순서로 UTF8 을 따름 | | 인증 방식 | --default-authentication-plugin= | mysql_native_password | native 인증 방식 사용 | - 위 옵션 중 인증 방식은 MySQL5(MySQL v5.7) 에서 MySQL8(MySQL v8.x) 로 버전업이 되면서 `외부 소프트웨어가 MySQL에 접속하는 인증 방식(SHA2)을 바꿈.` ### WordPress - 커맨스 예 ```text docker run --name {컨테이너 이름 } -dit --net={네트워크 이름} -p {포트 설정} -e WORDPRESS_DB_HOST={데이터베이스 컨테이너 이름} -e WORDPRESS_DB_NAME={데이터베이스 이름} -ㄷe WORDPRESS_DB_USER={데이터베-이스 사용자 이름} -e WORDPRESSDB_PASSWORD={데이터베이스 암호} wordpress ``` - 옵션 | 옵션 | 항목 | 샘플 값 | | -- | -- | -- | | --net | 네트워크 이름 | wordpress000net1 | | --name | 워드프레스 컨테이너 이름 | wordpress000ex1 | | -dit | 실행 옵션 | | | -p | 포트번호 설정 | 8085:80 | | -e WORDPRESS_DB_HOST | 데이터베이스 컨테이너 이름 | mysql000ex1 | | -e WORDPRESS_DB_NAME | 데이터베이스 이름 | wordpress000db | | -e WORDPRESS_DB_USER | 데이터베이스 사용자 이름 | wordpress000user | | -e WORDPRESS_DB_PASSWORD | 데이터베이스 암호 | wordpress000pass | # 출처 - [그림과 실습으로 배우는 도커 & 쿠버네티스](https://wikibook.co.kr/dkkb/) Previous Post [docker] 컨테이너 Next Post [docker] 컨테이너 응용 - 파일 복사