Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

Linux 운영체제의 docker를 위한 tcp 바인딩 추가

지난 글에서,

"Docker Desktop for Windows"의 "Linux Container" 모드를 위한 tcp 바인딩 추가
; https://www.sysnet.pe.kr/2/0/12175

윈도우 환경의 "Docker Desktop for Windows"를 설치했을 때 "Linux Container" 모드를 위한 tcp 바인딩을 별도의 컨테이너 운영으로 대신했었습니다. 반면 "Windows Container" 모드의 경우에는 C:\ProgramData\docker\config\daemon.json을 이용했고.

자, 그럼 실제 Linux 운영체제에 설치된 docker라면 어떨까요? 이와 관련해서는 다음과 같은 문서가 있습니다.

How do I enable the remote API for dockerd
; https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd

위의 문서에 보면 "/etc/systemd/system/docker.service.d/startup_options.conf" 경로의 파일을 생성해, 다음과 같이 구성해도 된다고 합니다.

# /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

또는 아예 systemctl의 "docker.service" 파일을 편집해 ExecStart에 "-H tcp://0.0.0.0:2375"를 추가해도 됩니다.

~ nano /lib/systemd/system/docker.service  

~ cat /lib/systemd/system/docker.service 
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375  --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s

# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this option.
TasksMax=infinity

# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes

# kill only the docker process, not all processes in the cgroup
KillMode=process

[Install]
WantedBy=multi-user.target

물론 이렇게 바꾼 다음 systemctl을 재시작해야 반영이 됩니다.

~ systemctl daemon-reload
~ systemctl restart docker.service
~ netstat -ano | grep 2375


참고로, "fd://는 dockerd가 알아서 "/lib/systemd/system/docker.socket"로 설정한다는데, "Docker Desktop for Windows"에서 "npipe://"를 기본적으로 "//./pipe/docker_engine"로 매핑하는 규칙과 유사합니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 10/28/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2020-10-28 10시29분
아래의 글에 보면,

Linux 의 init 시스템: systemd 와 systemctl 간단 사용법
; http://oniondev.egloos.com/9972854

systemctl에 대한 더 자세한 설명을 볼 수 있습니다. 예를 들어, 이 글의 본문에서 override conf 파일을 직접 경로를 입력해 편집했는데 이것을 systemctl을 이용하는 것도 가능합니다.

$ sudo systemctl edit nginx.service # override.conf 를 만들어서 기존 설정값 덮어쓰기

또한 기준이 되는 "/lib/systemd/system/docker.service" 설정 파일도 경로를 알 필요없이 systemctl로 편집 모드로 진입하는 것이 가능합니다.

sudo systemctl edit --full nginx.service # 현재 설정파일을 직접 변경
정성태

1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13355정성태5/12/20233823.NET Framework: 2123. C# - Semantic Kernel의 ChatGPT 대화 구현 [1]파일 다운로드1
13354정성태5/12/20234077.NET Framework: 2122. C# - "Use Unicode UTF-8 for worldwide language support" 설정을 한 경우, 한글 입력이 '\0' 문자로 처리
13352정성태5/12/20233693.NET Framework: 2121. C# - Semantic Kernel의 대화 문맥 유지파일 다운로드1
13351정성태5/11/20234197VS.NET IDE: 185. Visual Studio - 원격 Docker container 내에 실행 중인 응용 프로그램에 대한 디버깅 [1]
13350정성태5/11/20233471오류 유형: 859. Windows Date and Time - Unable to continue. You do not have permission to perform this task
13349정성태5/11/20233776.NET Framework: 2120. C# - Semantic Kernel의 Skill과 Function 사용 예제파일 다운로드1
13348정성태5/10/20233681.NET Framework: 2119. C# - Semantic Kernel의 "Basic Loading of the Kernel" 예제
13347정성태5/10/20234071.NET Framework: 2118. C# - Semantic Kernel의 Prompt chaining 예제파일 다운로드1
13346정성태5/10/20233898오류 유형: 858. RDP 원격 환경과 로컬 PC 간의 Ctrl+C, Ctrl+V 복사가 안 되는 문제
13345정성태5/9/20235274.NET Framework: 2117. C# - (OpenAI 기반의) Microsoft Semantic Kernel을 이용한 자연어 처리 [1]파일 다운로드1
13344정성태5/9/20236480.NET Framework: 2116. C# - OpenAI API 사용 - 지원 모델 목록 [1]파일 다운로드1
13343정성태5/9/20234353디버깅 기술: 192. Windbg - Hyper-V VM으로 이더넷 원격 디버깅 연결하는 방법
13342정성태5/8/20234261.NET Framework: 2115. System.Text.Json의 역직렬화 시 필드/속성 주의
13341정성태5/8/20234000닷넷: 2114. C# 12 - 모든 형식의 별칭(Using aliases for any type)
13340정성태5/8/20234073오류 유형: 857. Microsoft.Data.SqlClient.SqlException - 0x80131904
13339정성태5/6/20234735닷넷: 2113. C# 12 - 기본 생성자(Primary Constructors)
13338정성태5/6/20234251닷넷: 2112. C# 12 - 기본 람다 매개 변수파일 다운로드1
13337정성태5/5/20234758Linux: 59. dockerfile - docker exec로 container에 접속 시 자동으로 실행되는 코드 적용
13336정성태5/4/20234565.NET Framework: 2111. C# - 바이너리 출력 디렉터리와 연관된 csproj 설정
13335정성태4/30/20234667.NET Framework: 2110. C# - FFmpeg.AutoGen 라이브러리를 이용한 기본 프로젝트 구성 - Windows Forms파일 다운로드1
13334정성태4/29/20234298Windows: 250. Win32 C/C++ - Modal 메시지 루프 내에서 SetWindowsHookEx를 이용한 Thread 메시지 처리 방법
13333정성태4/28/20233743Windows: 249. Win32 C/C++ - 대화창 템플릿을 런타임에 코딩해서 사용파일 다운로드1
13332정성태4/27/20233844Windows: 248. Win32 C/C++ - 대화창을 위한 메시지 루프 사용자 정의파일 다운로드1
13331정성태4/27/20233850오류 유형: 856. dockerfile - 구 버전의 .NET Core 이미지 사용 시 apt update 오류
13330정성태4/26/20233491Windows: 247. Win32 C/C++ - CS_GLOBALCLASS 설명
13329정성태4/24/20233714Windows: 246. Win32 C/C++ - 직접 띄운 대화창 템플릿을 위한 Modal 메시지 루프 생성파일 다운로드1
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...