docker 설치 후 여러가지 문제를 맞닥뜨릴 때가 있습니다.
그럴 때 하나씩 노션에 정리해둔 메모를 모아보았습니다.
#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
위와 같이 docker Run을 할 때, 여러가지 명령어를 입력하여 사용하면 좋지만 docker compose 명령어를 사용하면 조금 더 편한 듯하니 compose 조금 더 자주 활용하길..
docker pull postgres
# 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
docker-compose 파일이 저장된 위치로 이동 후 docker-compose 실행 하면 됩니다.
docker-compose up -d
docker-compose 중지할 땐, 아래의 명령어를 사용하고,
docker-compose stop
삭제하고 싶을 땐,
docker-compose down
이렇게 하시면 됩니다.
(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
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
뜻하지 않게 버젼이슈나.. 아무리 찾아도 문제를 찾지 못하는 경우가 있다. 도커를 완전 제거 후 재 설치하는 과정을 정리했습니다.
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
삭제하던 중, 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 방화벽 끄고 삭제 후 재기동