Docker 매개변수 – 최고의 매개변수!

숙련된 시스템 관리자라면 한번쯤 들어보셨을 것입니다. "도커" 듣고 이미 그것이 무엇인지 알고 있습니다. 모르시는 분들을 위해 설명하자면, Docker는 애플리케이션이 격리된 컨테이너에서 실행될 수 있게 해주는 오픈 소스 기술입니다.

Docker 매개변수란 무엇입니까?

Docker 매개변수는 Docker 명령에 전달되는 값입니다. 이 값은 환경 변수 형식으로 지정하거나 명령 자체에서 직접 지정할 수 있습니다.

다양한 유형의 Docker 매개변수

docker run 명령에는 필요에 맞게 사용자 정의할 수 있는 다양한 옵션과 매개변수가 있습니다. 이에 기사 다양한 유형의 Docker 매개변수에 중점을 둘 것입니다.

Docker 매개변수에는 환경 변수, 단일 명령, 명령과 파일의 조합이라는 네 가지 주요 유형이 있습니다. 각 유형마다 고유한 특성이 있습니다. 장점과 단점그 점을 고려해야 합니다.

환경 변수는 사용하기 쉽고 코드를 변경하지 않고도 환경의 특정 부분을 사용자 정의할 수 있습니다. 그러나 단순한 데이터 유형만 저장할 수 있으므로 더 복잡한 애플리케이션 구성에는 적합하지 않습니다.

단일 명령을 사용하면 파일을 만들지 않고도 간단히 명령을 실행할 수 있습니다. 이는 전체 애플리케이션을 구축하지 않고 특정 작업만 수행하려는 경우 유용할 수 있습니다. 그러나 개별 명령은 확장 가능하지 않으므로 대규모 응용 프로그램에는 적합하지 않을 수 있습니다.

명령을 조합하면 여러 명령을 파일에 저장한 다음 실행할 수 있습니다. 매번 코드를 변경할 필요 없이 여러 작업을 수행하려는 경우에 유용합니다. 그러나 명령 조합은 혼란스럽고 디버그하기 어려운 경우가 많습니다.

파일은 코드를 저장하고 실행하는 가장 유연한 방법입니다. 파일은 쉽게 생성 및 수정할 수 있으므로 모든 유형의 응용 프로그램에 적합합니다. 그러나 파일은 혼란스럽고 디버그하기 어려운 경우가 많습니다.

최고의 Docker 매개변수

최고의 Docker 매개변수

Docker를 사용하는 경우 다양한 옵션을 지정하여 컨테이너의 동작을 제어할 수 있습니다. 이 문서에서는 가장 일반적으로 사용되는 최고의 Docker 매개변수에 대해 설명합니다.

–name: 이 매개변수는 컨테이너에 이름을 지정합니다. 이름을 지정하지 않으면 임의의 이름이 생성됩니다. 컨테이너를 쉽게 식별할 수 있도록 이름은 고유해야 합니다.

–detach / -d: 이 매개변수는 백그라운드에서 컨테이너를 실행합니다. 기본적으로 컨테이너는 포그라운드에서 실행되며 컨테이너가 종료되거나 Ctrl+C를 눌러 취소될 때까지 명령줄은 차단된 상태로 유지됩니다. 컨테이너를 백그라운드에서 실행하려면 –detach 매개변수를 지정해야 합니다.

–publish / -p: 이 매개변수는 컨테이너 포트와 호스트 포트 간의 연결을 설정합니다. 연결하지 않으면 외부에서 컨테이너의 포트에 접근할 수 없습니다. 여러 포트를 게시하려면 –publish 매개변수를 여러 번 지정할 수 있습니다.

–interactive / -i: 이 매개변수는 컨테이너가 포그라운드에서 실행되고 컨테이너가 종료되거나 Ctrl + C를 눌러 중단될 때까지 명령줄이 차단되지 않도록 합니다.

–tty / -t: 이 매개변수는 컨테이너의 터미널을 시뮬레이션합니다. 이 매개변수를 지정하면 컨테이너에 입력하고 명령을 실행할 수 있습니다. 이 매개변수를 지정하지 않으면 컨테이너에 입력하거나 명령을 실행할 수 없습니다.

–rm: 이 매개변수는 컨테이너가 종료된 후 컨테이너를 삭제합니다. 이 매개변수를 지정하지 않으면 컨테이너는 그대로 유지되며 나중에 복원할 수 있습니다.

–volume / -v: 이 매개변수는 호스트 폴더와 컨테이너 폴더 간의 연결을 생성합니다. 연결하면 호스트 폴더에서 컨테이너로 또는 그 반대로 파일을 복사할 수 있습니다.

–workdir / -w: 이 매개변수는 컨테이너의 작업 디렉터리를 설정합니다. 기본적으로 작업 디렉터리는 /root로 설정됩니다.

–user / -u: 이 매개변수는 컨테이너의 사용자를 설정합니다. 기본적으로 사용자 루트가 사용됩니다.
이는 사용 가능한 많은 Docker 매개변수 중 일부에 불과합니다. 자세한 내용은 Docker 설명서를 참조하세요.

–restart: 이 매개변수는 컨테이너가 종료되거나 충돌하는 경우 Docker가 컨테이너를 다시 시작해야 하는 방법을 지정합니다. 이 매개변수에는 아니요, 실패 시, 항상 및 중지되지 않는 등 다양한 옵션이 있습니다. 기본값은 "no"입니다. 이는 컨테이너가 다시 시작되지 않음을 의미합니다. "on-failure"를 지정하면 컨테이너가 실행 중인 경우 컨테이너가 다시 시작됩니다. 오류 종료되었습니다(예: 충돌로 인해). "항상"은 컨테이너가 완전히 종료된 경우에도 컨테이너가 항상 다시 시작됨을 의미합니다. "Unless-stopped"는 "always"와 유사하지만 여기서는 컨테이너가 무인 상태로 실행되는 것이 아닙니다. 컨테이너를 중지하기 위해 "docker stop" 명령을 실행하면 더 이상 다시 시작되지 않습니다.

–hostname: 이름에서 알 수 있듯이 이 매개변수는 컨테이너의 호스트 이름을 설정합니다. 기본값은 컨테이너의 이름이거나 –name이 지정되지 않은 경우 임의의 이름입니다.

–interactive 또는 -i: 이 매개변수를 사용하면 실행 중인 컨테이너에 로그인하고 상호 작용할 수 있습니다. 예를 들어 컨테이너에서 터미널을 시작하고 명령을 실행할 수 있습니다. 이 매개변수를 지정하지 않으면 로그인하여 컨테이너와 상호작용할 수 없습니다.

–volume 또는 -v: 이 매개변수는 호스트 폴더와 컨테이너 폴더 간의 연결을 생성합니다. 연결하면 호스트 폴더에서 컨테이너로 또는 그 반대로 파일을 복사할 수 있습니다.

Docker 매개변수의 장점과 단점

Docker 매개변수의 가장 중요한 이점은 애플리케이션의 유연성과 적응성을 높여준다는 것입니다. 예를 들어 특정 환경 변수를 특정 애플리케이션에 전달할 수 있습니다. 호스트 시스템 리소스에 대한 액세스는 매개변수를 통해 제어할 수도 있습니다.

또 다른 장점은 Docker 매개변수를 사용하여 특정 보안 기능을 애플리케이션에 바인딩할 수도 있다는 것입니다. 예를 들어, 승인된 사용자만 애플리케이션에 액세스할 수 있도록 보장할 수 있습니다.

Docker 매개변수의 한 가지 단점은 일반적으로 개발자와 시스템 관리자만 사용할 수 있다는 것입니다. 일반적으로 일반 사용자에게는 표시되거나 이해할 수 없습니다. 따라서 Docker 매개변수를 모르면 애플리케이션을 사용자 정의하기가 어려울 수 있습니다.

Docker 실행 참조

대부분의 Docker 명령은 "docker" 명령으로 시작하고 그 뒤에 하위 명령이 옵니다. docker run은 일반적인 하위 명령이며 새 컨테이너를 실행하는 데 사용됩니다.

docker run 명령에는 실행하려는 컨테이너를 생성하고 구성하기 위해 지정할 수 있는 다양한 옵션과 매개변수가 있습니다. 이 기사에서는 docker run 명령에 가장 적합한 매개변수를 살펴보겠습니다.

운영자 전용 옵션

대부분의 운영자 옵션은 운영자에게만 국한되지 않고 다른 사용자도 사용할 수 있습니다. 그러나 운영자만을 위한 몇 가지 옵션이 있습니다. 여기에는 다음이 포함됩니다.

–log-level : 로깅 수준을 설정합니다. 운영자만 이 옵션에 액세스하여 설치에 대한 로깅을 사용자 정의할 수 있습니다.

–storage-opt : 운영자가 설치에 대한 추가 저장소 옵션을 구성할 수 있습니다. 이는 운영자가 Docker에서 지원하지 않는 특정 스토리지 백엔드를 사용할 때 유용합니다.

–format : 운영자가 docker 정보 출력 형식을 사용자 지정할 수 있습니다. 이는 운영자가 특정 형식의 정보를 추가로 처리하려는 경우 유용합니다.

분리형 대 전경

docker run 명령을 사용하여 컨테이너를 실행하면 항상 포그라운드에서 실행됩니다. 이는 컨테이너에 다음이 포함되어 있음을 의미합니다. 콘솔 호스트 시스템의 컨테이너를 중지하지 않고는 명령을 종료할 수 없습니다.

컨테이너를 백그라운드(분리)에서 실행하려면 "-d" 매개변수를 사용하면 됩니다. 그런 다음 컨테이너는 자체 프로세스에서 실행되고 콘솔 제어권은 호스트에 다시 제공됩니다.

컨테이너 식별

컨테이너 ID는 Docker 컨테이너의 고유 식별자입니다. docker ps 명령을 사용하여 볼 수 있으며 일반적으로 길이는 8자입니다. 컨테이너 ID의 처음 세 문자는 컨테이너를 만든 이미지의 ID입니다.

UTS 설정(-uts)

UTS 모드는 컨테이너가 자체 ID를 관리하는 방법을 지정합니다. 일반적으로 각 컨테이너는 자체 UID와 GID를 갖습니다. 그러나 이 모드가 항상 의미가 있는 것은 아닙니다. 특히 여러 컨테이너가 동일한 컨테이너에 액세스하는 경우에는 더욱 그렇습니다. 데이터베이스 또는 다른 리소스에 액세스해야 합니다. 이 경우 모든 컨테이너가 동일한 UID 및 GID를 갖도록 UTS 모드를 비활성화할 수 있습니다.

IPC 설정(-ipc)

IPC 설정(-ipc)을 사용하면 컨테이너 간 통신을 위해 공통 영역을 사용할 수 있습니다. 이를 통해 둘 이상의 컨테이너가 동일한 파일 및 소켓에 액세스할 수 있습니다. IPC 설정을 지정하지 않으면 Docker는 통신의 기본 범위를 설정합니다.

네트워크 설정

Docker에는 알아야 할 몇 가지 유용한 매개변수가 있습니다. 이러한 매개변수 중 하나는 -net입니다. 이 매개변수는 특정 애플리케이션에 대해 네트워크가 구성되는 방식을 결정합니다.

–net=host – 이 옵션을 사용하면 컨테이너가 호스트 네트워크에 직접 액세스할 수 있습니다. 이는 컨테이너가 모든 네트워크 서비스(DNS, HTTP 등)을 호스트에서 제공합니다.

–net=bridge – 이 옵션은 지정된 컨테이너가 다른 컨테이너 및 호스트와 통신할 수 있도록 허용하는 내부 네트워크 브리지 컨테이너를 생성합니다. 이는 –net의 기본 옵션입니다.

–net=container: – 이 옵션을 사용하면 컨테이너를 동일한 네트워킹 옵션을 사용하는 다른 컨테이너에 연결할 수 있습니다. 예를 들어 동일한 –net=bridge 옵션을 사용하여 두 개의 컨테이너를 연결하여 함께 연결할 수 있습니다.

–net=none – 이 옵션은 컨테이너에 대한 네트워킹을 비활성화합니다. 이 옵션을 사용하는 컨테이너는 네트워크에 접근할 수 없으므로 네트워크 서비스를 사용할 수 없습니다.

두 컨테이너가 서로 통신할 수 있도록 하려면 docker network create 명령을 사용할 수 있습니다.

$ docker network 내 네트워크 생성

이 명령은 my-network라는 새 네트워크를 생성합니다. 컨테이너를 이 네트워크에 연결하려면 –net 옵션과 함께 docker run 명령을 사용할 수 있습니다.
$ docker run –net=내 네트워크…

컨테이너를 제거하려면 docker rm 명령을 사용할 수 있습니다.

$ docker rm 내 컨테이너

이 명령은 my-container 컨테이너를 제거합니다. 네트워크를 제거하려면 docker network rm 명령을 사용할 수 있습니다.
$ 도커 네트워크 RM 내 네트워크

이 명령은 my-network라는 네트워크를 제거합니다.

정책 다시 시작(–restart)

Docker의 다시 시작 정책은 컨테이너가 컨테이너를 다시 시작하는 방법을 지정합니다. 오류 다시 시작해야 합니다. 다시 시작 옵션은 다음과 같습니다.

–restart=no: 컨테이너가 다시 시작되지 않습니다.
–restart=always: 컨테이너가 완전히 닫힌 경우에도 항상 다시 시작됩니다.
–restart=on-failure: 컨테이너가 실행 중인 경우 컨테이너가 다시 시작됩니다. 오류 종료되었습니다.
–restart=unless-stopped: docker stop 명령을 사용하여 수동으로 중지하지 않는 한 컨테이너는 항상 다시 시작됩니다.

종료 상태

종료 상태는 명령이나 함수가 성공적으로 완료되었는지 여부를 나타내기 위해 명령이나 함수에서 반환되는 값입니다.

명령이 종료 상태 0으로 완료되면 일반적으로 명령이 성공했음을 의미합니다. 종료 상태가 다르면 일반적으로 명령이 실패했음을 의미합니다.

종료 상태를 사용하여 특정 오류 코드를 생성할 수도 있습니다. 이는 특정 사항이 있는 경우 도움이 될 수 있습니다. 오류 찾기 및 수정 원하다. 예를 들어, 종료 1을 사용하여 "파일을 찾을 수 없음" 오류를 표시할 수 있습니다.

정리(-rm)

대부분의 Docker 명령은 하나 이상의 매개변수를 사용합니다. 가장 중요한 것 중 하나는 "-rm"입니다. 이 명령을 사용하면 명령이 완료된 후 Docker에서 생성된 모든 임시 개체가 삭제됩니다. 이렇게 하면 환경에 원치 않는 개체가 남아 있지 않게 됩니다.

보안 구성

Docker로 작업할 때 보안 구성은 매우 중요한 측면입니다. 이 섹션에는 가장 중요한 매개변수 중 일부가 나열되어 있습니다. SICHERHEIT Docker가 제공합니다.

우선, Docker 컨테이너는 봉인되어 있지만 격리되지는 않는다는 점을 항상 인식해야 합니다. 이는 공격자가 하나의 컨테이너에 침입하면 다른 모든 컨테이너와 호스트 시스템에 액세스할 수 있음을 의미합니다. 따라서 컨테이너를 적절하게 구성하고 보호하는 것이 매우 중요합니다.

Docker 보안의 가장 중요한 매개변수 중 하나는 “–cap-add”입니다. 이 매개변수를 사용하면 특정 커널 용량을 컨테이너에 전달할 수 있습니다. 이를 통해 호스트 시스템의 특정 기능에 대한 액세스를 제어할 수 있으므로 보안이 강화됩니다. 예를 들어 "–cap-add=NET_RAW"를 사용하면 컨테이너가 네트워크 패킷을 스니핑할 수 없도록 할 수 있습니다.

또 다른 중요한 매개변수는 "-security-opt"입니다. 이 매개변수를 사용하면 호스트 시스템의 특정 기능에 대한 액세스를 제한할 수 있습니다. 예를 들어 "–security-opt=apparmor:unconfined"를 사용하면 AppArmor가 컨테이너에 적용되지 않도록 할 수 있습니다. 이는 더 이상 AppArmor의 제한을 받지 않으므로 공격자에게 큰 이점을 제공합니다.

또 다른 매우 중요한 매개변수는 SELinux “–label” 매개변수입니다. 이 매개변수를 사용하면 호스트 시스템의 특정 기능에 대한 액세스를 제어할 수 있습니다. 예를 들어 “–label=type:
컨테이너_런타임_t'는 Docker가 SELinux를 컨테이너에 적용하지 않도록 합니다. 이는 더 이상 SELinux의 제한을 받지 않기 때문에 공격자에게 큰 이점을 제공합니다.

마지막 중요한 매개변수는 “–privileged”입니다. 이 매개변수를 사용하면 호스트 시스템의 모든 기능에 액세스할 수 있습니다. 이는 매우 위험하므로 꼭 필요한 경우에만 사용해야 합니다.

오늘은 여기까지입니다! 이 기사가 도움이 되었기를 바랍니다. 기초 Docker를 이해하려면

초기화 프로세스 지정

Docker 데몬은 지정된 init 프로세스를 인수로 받아들입니다. 이 프로세스는 컨테이너에서 실행되는 첫 번째 프로세스입니다. init 프로세스가 지정되지 않으면 기본 init 프로세스 init가 사용됩니다.

지정된 init 프로세스는 컨테이너에서 단일 프로세스만 실행되도록 해야 합니다. 여러 프로세스가 실행 중일 때 예상치 못한 오류가 발생할 수 있습니다. 또한 지정된 init 프로세스는 컨테이너가 종료될 때 적절하게 종료되는지 확인해야 합니다.

사용자 정의 cgroup 지정

애플리케이션에 대한 사용자 정의 cgroup 메모리 제한을 설정하려면 –cgroup-memory 플래그를 사용하면 됩니다. 예를 들어 제한을 512MB로 설정하려는 경우:

–cgroup-메모리=”512m”

사용자 정의를 구성하려면 어떻게 해야 합니까? DNS 내 컨테이너를 위한 서버?

맞춤 DNS가 있는 경우 섬기는 사람, 애플리케이션 사양 파일 또는 dcos marathon app add 명령에서 이를 설정할 수 있습니다. 이 예에서는 DNS를 설정하는 방법을 보여줍니다. 섬기는 사람 애플리케이션 사양 파일 사용:

{ “id”: “/내 서비스”, "DNS": { “네임서버”: [ “10.0.0.1” ] } }

이 예에서는 DNS를 설정하는 방법을 보여줍니다. 섬기는 사람 dcos marathon app add 명령 사용:
$ dcos 마라톤 앱 추가 { “id”: “/my-service”, "DNS": { “네임서버”: [ “10.0.0.1” ] } }

에 대한 자세한 내용은 DNS, Marathon 설명서의 DNS 설정을 참조하세요.

사용자 정의를 구성하려면 어떻게 해야 합니까? search 도메인 내 컨테이너에?

관습이 있는 경우 search 도메인, 애플리케이션 사양 파일 또는 dcos marathon app add 명령에서 이를 설정할 수 있습니다. 이 예에서는 sea애플리케이션 사양 파일을 사용하는 rch 도메인:

{ “id”: “/내 서비스”, "DNS": {“search”: [ “.example.com” ] } }

이 예에서는 seadcos marathon app add 명령을 사용하는 rch 도메인:$ dcos marathon app add { “id”: “/my-service”, “dns”: { “search”: [ “.example.com” ] } }

DNS에 대한 자세한 내용은 Marathon 설명서의 DNS 설정을 참조하세요.

내 컨테이너에 대한 사용자 지정 네트워크를 구성하려면 어떻게 해야 하나요?

사용자 정의 네트워크가 있는 경우 애플리케이션 사양 파일 또는 dcos marathon app add 명령에서 이를 설정할 수 있습니다. 이 예에서는 애플리케이션 사양 파일을 사용하여 네트워크를 설정하는 방법을 보여줍니다.

{ “id”: “/my-service”, “networks”: [ { “mode”: “컨테이너/브리지” } ] }

이 예에서는 dcos marathon app add 명령을 사용하여 네트워크를 설정하는 방법을 보여줍니다.
$ dcos marathon app add { “id”: “/my-service”, “networks”: [ { “mode”: “container/bridge” } ] }
네트워크에 대한 자세한 내용은 Marathon 설명서의 네트워크를 참조하세요.

리소스에 대한 런타임 제약

"리소스에 대한 런타임 제약"은 실행 중인 컨테이너의 리소스 관리를 제어하는 ​​Docker 매개변수입니다. 이 매개변수를 사용하면 컨테이너의 CPU 사용량, 메모리 공간 및 파일 시스템을 제한할 수 있습니다.

사용자 메모리 제약

대부분의 Docker 매개변수는 주 메모리 관리에만 사용됩니다. 이는 주로 컨테이너와 이미지를 실행하는 데 사용됩니다. 네트워크 구성 및 기타 매개변수도 있습니다. 자원 verantwortlich 신드.

Docker의 기본 메모리는 매우 제한되어 있습니다. 따라서 컨테이너나 이미지를 생성하려면 이러한 매개변수를 지정해야 합니다. 그렇지 않으면 성능 문제나 이미지 다운로드 오류가 발생할 수 있습니다.

컨테이너의 저장 공간을 늘리려면 다음 명령을 실행할 수 있습니다.

docker run -it –memory=”4g” 우분투 /bin/bash

이 명령은 4GB RAM을 갖춘 새 컨테이너를 생성합니다. 더 많은 메모리가 필요한 경우 그에 따라 값을 늘릴 수 있습니다.

또는 다음 명령을 실행하여 더 많은 메모리가 있는 이미지를 생성할 수 있습니다.

도커 빌드 –memory=”4g” -t my_image .

이 명령은 4GB RAM이 포함된 새 이미지를 생성합니다. 더 많은 메모리가 필요한 경우 그에 따라 값을 늘릴 수 있습니다.

커널 메모리 제약

커널 메모리 제약 조건은 Docker의 중요한 매개변수입니다. 컨테이너가 사용할 수 있는 커널 메모리의 양을 결정합니다. 이 매개변수의 값을 지정하지 않으면 기본값이 사용됩니다.

커널 메모리 매개변수의 값을 조정하려면 먼저 현재 값을 찾아야 합니다. 이는 "docker info" 명령을 사용하여 수행할 수 있습니다. 그런 다음 원하는 새 값을 지정할 수 있습니다.

이 매개변수를 변경하면 컨테이너를 다시 시작해야 할 수도 있습니다.

교환성 제약

swappiness 설정은 시스템이 메모리 내용을 스왑 공간에 쓰는 빈도를 결정하는 0에서 100 사이의 값입니다. 교환성 값이 높을수록 교환이 더 자주 발생하고 그 반대의 경우도 마찬가지입니다. 기본값은 60입니다. 데이터베이스 메모리가 가능한 오랫동안 메모리에 유지되도록 하려면 일반적으로 낮은 스왑성을 권장합니다.

CPU 공유 제약

CPU 사용률 공유는 컨테이너가 지정된 코어 수를 초과하지 않도록 하기 위해 Docker가 사용하는 Linux 커널에 내장된 구성입니다. 이는 컨테이너와 호스트 간의 격리는 물론 전체 시스템의 안정성을 위해 중요합니다.

CPUset 제약

CPUset 제약 조건은 컨테이너가 사용할 수 있는 CPU 수에 제한을 둡니다. 이는 컨테이너가 호스트 시스템의 다른 컨테이너를 방해하지 않도록 하는 데 유용합니다.

CPU 할당량 제약

CPU 할당량 제한(cgroup_cpu_shares)은 서로 다른 프로세스 간의 CPU 사용량을 제한할 수 있는 Linux 커널 기능입니다. 이 매개변수는 Docker에서 “–cpu-shares” 명령을 사용하여 지정할 수 있습니다.

예를 들어 값 512를 지정하면 컨테이너는 값이 256인 컨테이너에 비해 두 배의 CPU 시간을 받게 됩니다. 따라서 높은 값을 지정한다고 해서 반드시 컨테이너가 더 많은 CPU 시간을 받는다는 의미는 아니며 단지 상대적인 수준일 뿐입니다. 더 낮은 값을 가진 다른 컨테이너.

블록 IO 대역폭(Blkio) 제약

블록 IO 대역폭 조절은 컨테이너의 I/O 처리량 대역폭을 제한할 수 있는 도구입니다. 이는 컨테이너가 호스트의 다른 컨테이너에 과부하를 주지 않도록 하는 데 유용합니다. 블록 IO 대역폭은 초당 바이트 단위로 측정되며 모든 장치 또는 특정 장치에 대해 설정할 수 있습니다.

–blkio-weight

blkio 가중치는 컨테이너가 전체 시스템에서 받는 I/O 대역폭의 양을 나타냅니다. 예를 들어 값을 100으로 지정하면 컨테이너는 기본값이 50인 다른 컨테이너에 비해 두 배의 I/O 대역폭을 수신합니다. 이 매개변수는 특정 컨테이너가 최적의 성능을 달성하도록 하려는 경우에 유용합니다.

추가 그룹

단일 컨테이너에서 여러 서비스를 실행하려는 경우 추가 그룹을 만들 수 있습니다. 예를 들어 단일 컨테이너에서 웹 서버와 데이터베이스 서버를 실행하려는 경우에 유용합니다. 추가 그룹을 생성하려면 docker run 명령에 –group-add 명령을 추가합니다.

런타임 권한 및 Linux 기능

"런타임 권한"은 런타임 중에 특정 권한을 변경할 수 있도록 하는 Linux 핵심 기능입니다. 이는 응용 프로그램을 시작하거나 실행하는 데 다른 권한이 필요한 경우 특히 유용합니다.

이 기능은 "sudo" 명령과 함께 사용할 수 있습니다. 예: sudo chmod 777 /path/to/file. 이 명령은 모든 사용자에게 지정된 파일에 대한 전체 액세스 권한을 부여합니다.
그러나 sudo 기능에는 몇 가지 제한 사항이 있습니다. 예를 들어, 사용자는 아직 가지고 있지 않은 권한을 변경할 수 없습니다. 이는 사용자가 가져서는 안 되는 권한을 가정하는 것을 방지하기 위한 보안 예방 조치입니다.

sudo 기능의 또 다른 단점은 각 명령마다 다시 실행해야 한다는 것입니다. 사용자가 다른 권한으로 명령을 실행해야 하는 경우가 많으면 매우 짜증날 수 있습니다.

Linux 기능은 특정 권한을 설정할 수 있는 Linux 커널의 확장입니다. 프로그램 그리고 할당할 애플리케이션. 이를 통해 사용자는 프로그램이나 응용 프로그램에 대한 권한을 설정하고 필요한 경우 해당 권한을 변경할 수 있습니다.

sudo 기능보다 훨씬 더 유연한 Linux 기능을 사용하면 사용자가 프로그램이나 애플리케이션에 대한 권한을 미세 조정할 수 있습니다. 예를 들어 Linux 기능이 있는 사용자는 프로그램이 파일을 읽을 때만 액세스할 수 있도록 권한을 설정할 수 있습니다. 이는 프로그램이 변경해서는 안 되는 파일을 변경하지 않도록 하는 데 매우 유용합니다.

Linux 기능은 sudo 기능보다 훨씬 사용자 친화적입니다. Linux 기능을 사용하면 모든 명령에 대해 권한을 설정할 필요가 없습니다. 간단히 프로그램이나 응용 프로그램을 설치한 다음 해당 프로그램이나 응용 프로그램에 대한 권한을 설정할 수 있습니다.

로깅 드라이버(-log-driver)

Docker 이미지를 빌드할 때 사용할 로깅 드라이버를 지정할 수 있습니다. 기본 로깅 드라이버는 "json-file"입니다. 그러나 다른 다양한 옵션도 있습니다. 몇 가지 예로는 syslog, Journald 및 fluentd가 있습니다.

"-log-driver" 매개변수를 사용하여 로깅 드라이버를 지정할 수 있습니다. 예를 들어, syslog 로깅 드라이버를 사용하려면 다음과 같이 할 수 있습니다.

docker run –log-driver=syslog…

이 매개변수는 컨테이너 로그를 중앙 로깅 시스템에 저장하려는 경우 매우 유용합니다.

Dockerfile 이미지 기본값 재정의

새 Docker 이미지를 생성할 때 해당 이미지에 대한 기본 설정을 재정의할 수 있습니다. 이는 전체 이미지를 다시 작성하지 않고 특정 설정을 변경하려는 경우에 유용합니다. 예를 들어 전체 이미지를 다시 빌드하지 않고도 새 이미지의 기본 사용자 이름을 변경할 수 있습니다.

새 Docker 이미지의 기본값을 변경하려면 먼저 프로젝트 디렉터리에 ".dockerignore"라는 파일을 만들어야 합니다. 이 파일에서는 이미지를 생성할 때 무시해야 하는 모든 디렉터리와 파일을 지정해야 합니다. 이 파일을 생성한 후에는 다음 명령을 실행하여 이미지를 생성할 수 있습니다.

docker build -t your_image_name .
이 명령은 "your_image_name"이라는 새 Docker 이미지를 생성하고 기본 정의 값을 덮어씁니다.

결론

최고의 Docker 매개변수는 주로 요구 사항에 따라 달라집니다. 이 문서에서는 대부분의 사용 사례와 관련된 가장 중요한 매개변수 중 일부를 소개했습니다. 물론, 이 글에서 언급되지 않은 다른 훌륭한 옵션도 많이 있습니다. 시간을 내어 모든 옵션을 조사하고 어떤 옵션이 귀하에게 가장 적합한지 확인하십시오!

Jan Domke

프롬프트 엔지니어 | 소셜 미디어 관리자 | 호스팅 관리자 | 웹 관리자

2021년 말부터 온라인 매거진을 비공개로 운영하고 있습니다. SEO4Business 그래서 내 일을 취미로 바꾸었습니다.
2019년부터 직장인으로 일하고 있어요 Senior Hosting Manager, 독일 최대 규모의 인터넷 및 마케팅 대행사 중 하나에서 활동하고 있으며 지속적으로 시야를 넓혀가고 있습니다.

Jan Domke