도움이 되는 DOCKER 명령어

92·2023년 1월 29일
0

DOCKER

목록 보기
2/4
post-thumbnail

docker 설치 후 여러가지 문제를 맞닥뜨릴 때가 있습니다.
그럴 때 하나씩 노션에 정리해둔 메모를 모아보았습니다.

1. PostgreSQL 설치

1.1 CLI명령어 사용 시

#postgresql container 설치 예시
docker run --name postgres-container -d --restart unless-stopped \
  -p 5432:5432 -e POSTGRES_PASSWORD=123456 \
  -v ${PWD}/data:/var/lib/postgresql/data postgres:9.6
  • –restart unless-stopped : 따로 stop 명령을 보내지 않으면 컨테이너 재시작의 경우에도 자동 실행됨.
  • -p 5432:5432 : postgreSQL이 사용할 포트 번호 기재
  • -e POSTGRES_PASSWORD=123456 : postgreSQL DB에 대한 비밀번호 설정.
  • -v 볼륨 정보 : 컨테이너가 사용할 볼륨 정보 기재.
    postgres:9.6 : 실행할 postgreSQL 컨테이너 버전.

1.2 Docker-compose 사용 시

위와 같이 docker Run을 할 때, 여러가지 명령어를 입력하여 사용하면 좋지만 docker compose 명령어를 사용하면 조금 더 편한 듯하니 compose 조금 더 자주 활용하길..

1. PostgreSQL 컨테이너 이미지 가져오기

docker pull postgres

2. docker-compose 파일 생성

# compose 파일 버전
version: "3"
services: 
  # 서비스 명
  postgresql:
    # 사용할 이미지
    image: postgres
    # 컨테이너 실행 시 재시작
    restart: always
    # 컨테이너명 설정
    container_name: postgres
    # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
    ports:
      - "5432:5432"
    # 환경 변수 설정
    environment: 
      # PostgreSQL 계정 및 패스워드 설정 옵션
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    # 볼륨 설정
    volumes:
      - ./data/postgres/:/var/lib/postgresql/data

3. docker-compose 파일 실행

docker-compose 파일이 저장된 위치로 이동 후 docker-compose 실행 하면 됩니다.

docker-compose up -d

docker-compose 중지할 땐, 아래의 명령어를 사용하고,

docker-compose stop

삭제하고 싶을 땐,

docker-compose down

이렇게 하시면 됩니다.

1.3 실제 사용기(번외)

docker-compose.yml

(mariaDB)

 version: '3.7'
   services:
       mariadb:
           image: mariadb:10.4.6
           restart: always
           environment:
            - MYSQL_ROOT_PASSWORD=12345678
           volumes:
            - ./sql_volumes:/var/lib/mysql
           ports:
            - '3306:3306'
docker-compose up -d

2. Docker 시스템 자원 이슈 해결법

CPU 에러가 나오는 경우를 처음 봤는데, 영어로 쏼라쏼라 무언가 꽉 찼다는 명령어가 나와 당황했던 기억이.. 애초에 CPU 할당량과 메모리를 늘려서 사용할 수 있습니다.

CPU

docker run -i -t --name share_cpu \
> --cpu-shares 2048 \ # --cpu-shares: CPU 할당량 2배로 (기본값 1024)
> ubuntu:20.04     # image

MEMORY

docker run -it --name swap_500m \
    --memory=200m \
    --memory-swap=500m \
    ubuntu:20.04

3. Docker 삭제 후 재 설치

뜻하지 않게 버젼이슈나.. 아무리 찾아도 문제를 찾지 못하는 경우가 있다. 도커를 완전 제거 후 재 설치하는 과정을 정리했습니다.

docker 삭제과정

# docker container 중지
docker stop $(docker ps -q)

# docker container 삭제
docker rm $(docker ps -a -q)

# image 삭제
docker rmi $(docker images -q)
systemctl stop docker.service
systemctl stop containerd.service

yum list installed | grep docker

# containerd, docker-ce, docker-ce-cli 패키지 모두 삭제
yum erase containerd.io.x86_64
yum erase docker-ce.x86_64
yum erase docker-ce-cli.x86_64

cd /var/lib/docker
rm -rf *

cd /var/run
rm docker.sock docker.pid
rm: remove 소켓 `docker.sock'? y

rm -rf docker

docker 설치과정

# docker-ce 패키지 설치
yum install -y docker-ce
// 설치된 docker 패키지 확인
yum list installed | grep docker

# 서비스 등록 
systemctl enable docker.service
systemctl enable containerd.service

systemctl start docker.service
ps -ef | grep container

3.1 docker 삭제에러 해결

삭제하던 중, cannot remove 어쩌구 저쩌구 에러가 보인다..

sudo rm -rf /var/run/docker
rm: cannot remove /var/run/docker/netns/XXXXX’: Device or resource busy

해결 방법으로는 아래처럼 /var/run/docker에서 삭제 후 방화벽을 끄고 재기동하면 삭제가 됩니다.

sudo umount /var/run/docker/netns/XXXXX
sudo rm -rf /var/run/docker

# 이후과정 iptable
# firewalld 방화벽 끄고 삭제 후 재기동
profile
{ "ME" : "DataEngineer, DataAnalyst" }

0개의 댓글