도커 볼륨을 사용하여 웹 페이지를 변경하는 방법은 여러 가지가 있습니다. 도커 볼륨은 호스트 머신과 도커 컨테이너 사이의 데이터를 공유하기 위한 기능을 제공합니다. 따라서 웹 페이지를 변경하려면 호스트 머신의 파일 시스템을 컨테이너 내의 볼륨에 마운트하고, 해당 볼륨을 웹 서버 컨테이너에 연결하면 됩니다.

 

'/usr/share/nginx/html' 는 호스트 머신이 웹 페이지 파일이 위치한 디렉토리 경로를 나타냅니다.

forbidden이 뜨는 이유는 nginx_root 디렉토리에 아무 파일도 없어서 그렇습니다.

해당 디렉토리로 이동하여 html이 파일을 만들어 주면 웹 페이지가 변경되는 것을 확인할 수 있습니다.

이제 웹 페이지 파일이 변경되면 웹 서버 컨테이너에서 해당 변경 사항이 반영됩니다. 이 방법은 웹 개발 중 빠른 개발 및 테스트를 위해 유용하게 사용될 수 있습니다.

도커의 'docker info'명령을 사용하여 도커 환경에 대한 정보를 검색할 수 있습니다. 이 정보 중에서 'plugins' 섹션은 도커에 설치된 플러그인과 관련된 정보를 제공합니다. 특히 'network' 플로그인은 도커 네트워크 기능을 확장하거나 사용자 정의 네트워크 드라이버를 제공하는데 사용합니다. 

도커 네트워크는 도커 컨테이너 간의 통신을 관리하기 위한 도구입니다.

  • bridge network : 기본적으로 도커가 생성하는 네트워크 입니다. 컨테이너가 동일한 네트워크에 연결되면 서로 통신할 수 있습니다. 브리지 네트워크는 도커 엔진의 내부 가상 스위치에 의해 관리되며, 컨테이너에 IP주소를 자동으로 할당합니다.
  • host network : 컨테이너가 호스트의 네트워크 네임스페이스를 공유하도록 설정합니다. 이 경우 컨테이너는 호스트와 동일한 IP주소 및 포트 공간을 사용하여, 호스트의 네트워크 인터페이스와 직접적으로 통신할 수 있습니다.
  • overlay network : 여러 도커 호스트 간의 컨테이너 통신을 가능하게 하는 네트워크 입니다. overlay 네트워크는 여러 호스트를 연결하고 컨테이너를 투명하게 배치할 수 있도록 하기 위해 가상 네트워크를 사용합니다. 이를 통해 분산 시스템 및 서비스 간의 통신을 단순화할 수 있습니다.
  • IPvlan network : 호스트 머신의 네트워크 인터페이스에 가상 인터페이스를 만들어 컨테이너에 직접적인 네트워크 연결을 제공하는 드라이버입니다. 이를 통해 컨테이너는 호스트의 네트워크와 동일한 서브넷 내에서 IP 주소를 할당받을 수 있습니다. IPvlan을 사용하면 컨테이너 간에 직접 통신할 수 있으며, 호스트의 다른 네트워크 장치와도 통신할 수 있습니다. IPvlan은 높은 성능을 제공하며, 네트워크 확장성을 개선하는데 사용될 수 있습니다.
  • Macvlan network : 호스트 머신의 네트워크 인터페이스의 실제 MAC 주소를 할당하여 컨테이너에 고유한 물리적 네트워크 인터페이스를 제공하는 드라이버입니다. 이를 통해 컨테이너는 독립적인 네트워크 장치로 간주되며, 호스트 및 다른 네트워크 장치와 완전히 분리됩니다. Macvlan은 컨테이너에 직접적인 네트워크 연결을 제공하므로 높은 성능과 호스트와의 격리를 제공합니다. Macvlan 네트워크를 사용하면 컨테이너가 호스트와 동일한 서브넷 네에서 고유한 IP 주소를 할당받을 수 있습니다.

도커 컨테이너에서 인위적으로 네트워크를 만들어 보겠습니다.

'docker network create' 새로운 네트워크를 생서하는 데 사용됩니다. 이 명령어를 사용하면 도커 네트워크를 구성하고, 컨테이너 간의 통신이나 호스트와의 통신을 위한 테으쿼를 설정할 수 있습니다. 

새로 만든 컨테이너에서 네트워크를 확인할 수 있습니다.

'ifconfig' 네트워크를 검색하면 브리지 환경으로 잡혀있는 것을 볼 수 있습니다.

 

'docker network ls' 명령어는 현재 도커 호스트에 존재하는 네트워크 목록을 표시합니다. 목록에는 각 네트워크의 ID, 이름, 드라이버, 스코프 등의 정보가 포함됩니다.

앞에서 생성할 때 네트워크에 대한 것을 설정하지 않았습니다. 앞에서 했던 것 처럼 이미지를 2개 만들어 보고 네트워크가 어떻게 구성되어 있는지 확인해 보도록 하겠습니다.

자세한 네트워크를 확인하기 위해서는 컨테이너 안으로 들어가서 확인해야할 것 같습니다.

기본적인 우분투환경이라서 툴을 설치가 되어있지 않습니다.

 

이렇게 툴이 설치가 되어 있으면 컨테이너 밖에서 확인할 수 있습니다.

도커 네트워크에는 다양한 유형의 네트워크 드라이버가 제공됩니다. 기본 네트워크 드라이버는 '브리지'입니다. 이 드라이버는 기본적으로 동작하며, 호스트와 독립적인 가상 브리지를 생성하여 컨테이너를 연결합니다.

기본에 실행 중인 컨테이너와 볼륨을 제거하고 새로운 컨테이너를 다운로드하겠습니다.

먼저 볼륨을 제거하기 전에 해당 볼륨을 사용 중인 컨테이너가 있는지 확인해야합니다.

볼륨을 사용 중인 컨테이너가 있다면, 해당 컨테이너를 정지시켜야 합니다. 컨테이너 이름이나 ID를 사용하여 컨테이너를 정지할 수 있습니다.

볼륨을 제거할 때 주의할 점은 볼륨을 제거하면 해당 볼륨과 관련된 데이터가 영구적으로 삭제된다는 점입니다. 따라서, 볼륨을 제거하기 전에 백업이나 데이터 이전 등의 필요한 작업을 수행해야 합니다. 볼륨을 사용 중인 컨테이너를 모두 정지하고 제거한 후에 볼륨을 삭제해야 합니다.

 


 

  • -e MYSQL_ROOT_PASSWORD : mysql root 사용자의 비밀번호를 설정합니다.
  • -e MYSQL_DATABASE : 컨테이너 시작 시 생성할 데이터베이스의 이름을 설정합니다.
  • -v mysql-vol01:/var/lib/mysql : 앞서 생성한 볼륨을 '/var/lib/mysql' 경로에 마운트하여 데이터베이스 파일을 저장합니다.

컨테이너가 실행된 후 데이터베이스에 접속합니다.

  • mysql : 명령어는 mysql 클라이언트 도구를 실행하는 역할을 합니다.
  • -u : 옵션은 mysql에 사용할 사용자 이름을 지정합니다. 여기서는 root 사용자를 지정하고 있습니다.
  • -p : 옵션은 비밀번호를 입력하는 의미입니다.

'show databases' 명령어는 현재 mysql 서버에 존재하는 모든 데이터베이스의 목록을 보여주는 명령어입니다. 이 명령어를 사용하여 데이터베이스의 이름을 확인할 수 있습니다.

세미콜론 (;)은 sql문장의 끝을 나타냅니다.

'create database' 명령어는 새로운 데이터베이스를 생성하는 명령어입니다.

명령어를 실행하려면 적절한 권한을 가진 사용자로 mysql에 접속해야 합니다. 일반적으로 root 사용자 또는 데이터베이스 관리자 계정을 접속하는 것이 필요합니다.

위 경로로 이동하면 로그가 쌓이고 있는 것을 확인할 수 있습니다.

+ Recent posts