728x90
반응형

개요 

도커 빌드 이미지 생성 시 이미지에 대한 Label을 생성할 수 있다.

필요에 따라 해당 Label을 가지고 이미지에 대해 확인 하는 등 처리 할 수 있는 프로세스가 이것저것 생기게 된다.

 

1. FROM 추가

FROM node:10-alpine as build-stage

2. ARG 추가

ARG BUILD_ID
728x90

3. Label 추가

LABEL build=builder_$BUILD_ID

해당 부분을 추가 해줌으로 써 Build에 대한 Label을 지정 해 줄 수 있다.

나머지 구문에 대해서는 생략 하도록 하겠다.

 

728x90
300x250

'IT > Container' 카테고리의 다른 글

Docker cgroupfs에서 systemd로 변경 방법  (0) 2021.09.10
WSL2에서 Docker 설치하기  (0) 2021.09.10
728x90
반응형

Docker cgroup driver 변경 방법

 

Docker에서 사용하고 cgroup driver 확인하기

docker info | grep -i cgroup

 

json 파일생성

cat <<EOF | sudo tee /etc/docker/daemon.json 
{ 
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": { 
        "max-size": "100m"
        },
        "storage-driver": "overlay2"
} 
EOF
728x90
300x250

'IT > Container' 카테고리의 다른 글

Docker 이미지에 Label 설정  (0) 2022.04.27
WSL2에서 Docker 설치하기  (0) 2021.09.10
728x90
반응형

Docker의 보안에 대해 docker의 구조로 부팅하면 iptables를 편집하고 노출시킨 포트에 대한 접근을 허용하기 때문에 알게 모르게 포트를 모두 개방할 가능성이 있습니다.

 

위 문제를 해결하기 위해 Docker 부팅 후 iptables 규칙을 추가하는 방법을 기재합니다.

iptables 규칙을 추가할 셸 스크립트를 준비합니다.실행 권한도 설정.

# touch /usr/local/sbin/docker-iptables.sh
# chmod 755 /usr/local/sbin/docker-iptables.sh
# vi /usr/local/sbin/docker-iptables.sh

파일의 내용은 아래와 같이 합니다.

이 내용은 LAN(10.101.39.0/24)에서 TCP80번과 443번 포트에 접속하는 것만 허용하는 예입니다. 컨테이너가 공개하는 포트에 따라서적절히 규칙을 변경해주세요.

 

/usr/local/sbin/docker-iptables.sh

#!/bin/bash
 
function _iptables () {
    /sbin/iptables "$1" DOCKER-USER ! -i docker0 -o docker0 -j REJECT
    /sbin/iptables "$1" DOCKER-USER ! -i docker0 -o docker0 -s 10.101.39.0/24 -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
    /sbin/iptables "$1" DOCKER-USER ! -i docker0 -o docker0 -s 10.101.39.0/24 -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
    /sbin/iptables "$1" DOCKER-USER ! -i docker0 -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
}
 
function _usage () {
    echo "usage: $0 (start|stop)" >&2
}
 
 
case "$1" in
    start)
        _iptables -I
        ;;
    stop)
        _iptables -D
        ;;
    *)
        _usage
        ;;
esac

systemd에서 docker를 시작할 때 처리에 이 셸스크립트를 실행하도록 추가합니다.

# mkdir /etc/systemd/system/docker.service.d
# vi /etc/systemd/system/docker.service.d/add_iptables.conf

[Service]
ExecStartPost=/usr/local/sbin/docker-iptables.sh start
ExecStop=/usr/local/sbin/docker-iptables.sh stop

추가한 systemd 설정을 반영합니다

# systemctl daemon-reload

마지막으로 docker 데몬을 중지, 부팅한 상태에서 각각 iptables 규칙이 변경되었는지 확인합니다.

# systemctl stop docker.service
# iptables -vnL
# systemctl start docker.service
# iptables -vnL
728x90
300x250

'IT > Opensource' 카테고리의 다른 글

Stunnel  (0) 2023.06.22
Redash 설치 및 세팅 (bitnami 버전)  (0) 2021.08.11
Redash 설치 및 세팅 (Docker Compose 버전)  (0) 2021.08.11
LVS 사전 준비  (0) 2021.08.09
PMM 명령어  (0) 2021.07.30

+ Recent posts