반응형
Docker & Docker Compose 한방에 설치하기 (feat. V2 버전 명령어로 업데이트 완료)
·
Infra/Docker
그대로 따라하시면 됩니다가만보니 Docker랑 Docker Compose를 설치하는 포스팅이 없었다홈서버 구축 단계에 포함되어있긴 하던데 나도 참고하기 불편해서 따로 뺐다아래 순서대로만 하면 끝!2025.10.14 내용 업데이트W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.sudo apt update 할 때마다 warning이 뜨길래 찾아보니 설치과정이 구버전인 이슈였다 (우분투 22.04 기준)Docker 설치에 패..
도커 디렉토리를 옮겼더니 볼륨 초기화 됨... (feat. 대성통곡 & 볼륨 복구 방법)
·
Infra/Docker
나의 작고 귀여운 동산들이 싹다 밀렸다내가 한거라곤 프로젝트 디렉토리를 세분화했을 뿐이다 단일 디렉토리 안에 15개가 넘는 컨테이너가 존재했다그것들 전부 단일 docker-compose.yml에 있고.. 복잡해서 안되겠다 싶어서 분류를 했더랬죠볼륨? 전부 삭제도 안하고 고대로 냅두고, 바운드 마운트? 전부 신경써서 경로 수정해줬더랍니다 그래서 아래처럼 분류할 수 있었어요├── infra│ ├── certbot│ ├── certbot_SSL_test.sh│ ├── docker-compose.yml│ ├── duckdns│ ├── fail2ban│ └── nginx├── monitoring│ ├── docker-compose.yml│ ├── grafana│ ├── loki│ ..
Docker Volume 설정 시, 빈 디렉토리 생성됨 (feat. bind mount vs named mount)
·
Infra/Docker
이전 글을 쓰며 의문이 생겼더랬죠 [서버 보안 시리즈 #2.5] Fail2Ban 삽질일기와 해결과정설명에 앞서 아래 두가지 용어를 이 글에선 아래와 같은 의미로 쓸 예정이다로컬 경로 : 컨테이너 외부 경로내부 경로 : 컨테이너 내부 경로1. 컨테이너를 띄운 이후에 로컬 볼륨 연결하면 컨테ratatou2.tistory.com로컬(호스트)의 Volume 디렉토리에 Docker 컨테이너 내부의 파일들?언제는 자동으로 생성되고, 언제는 안되고... 1) 대체 뭐임?2) Docker Volume 설정했는데 빈 디렉토리 생기는 이슈는 어떻게 해결함?너무 헷갈려서 진짜 열심히 조사하고 장난감 서버에 열심히 테스트 해봤더랬다 사실 Docker의 볼륨에는 두가지 버전이 있다그리고 그 두가지 버전이 다르게 동작해서 생긴 ..
컨테이너 삭제 후 재빌드하고 띄우기 (feat. 캐시 삭제)
·
Infra/Docker
이게 진짜 꼭 필요한데 가끔 기억이 안 날 때가 있다고로 오늘 기록해둠1. 일단 실행중인 컨테이너 종료 후 삭제# 템플릿docker rm -f # 예시 docker rm -f llm-api -f는 실행 중이면 강제로 종료시켜서 삭제해줌.2. 캐시 삭제 후 재빌드# 템플릿docker compose up -d --build --no-cache # 예시docker compose up -d --build --no-cache api-server위 명령어가 안될 때가 있다내가 그랬음...아래와 같은 에러를 토해내더라unknown flag: --no-cache 이럴 땐 아래처럼 두개로 나누어 진행하면 된다# 템플릿docker compose build --no-cache docker compose up -d # 예시d..
Docker 컨테이너를 restart 할 때, depends_on으로 묶인 컨테이너도 같이 재시작이 되는가?
·
Infra/Docker
결론부터 말하면 '아니다'나와 같은 의문을 가진 사람이 이미 스택오버플로에 질문을 남겼고 이에 대한 답변이 있었다https://stackoverflow.com/questions/75906046/docker-compose-does-not-restart-dependable-containers 핵심은 'depends_on은 묶인 서비스들을 재시작하지 않는 않는 다는 것'이다즉, depends_on 옵션은 종속성을 위한 컨테이너를 띄우는 순서를 정해줄뿐, 묶인 다른 컨테이너의 재시작을 같이하지 않는다 또한, 이번에 알게된 것인데, depends_on을 한다고해도 서비스 상태, 컨테이너의 준비 완료를 보장해주지는 않는다즉, 컨테이너를 의존성으로 묶어둔 순서대로 실행시켜주지만, 그 컨테이너의 health check..
docker 명령어에서 -u www-data의 의미는?
·
Infra/Docker
저 옵션은 아래 세가지를 위함이다1) 파일 권한 문제 방지 2) Nextcloud의 파일 액세스 정책 준수 3) 보안 즉, 안정적인 사용을 위해서 저런 옵션이 붙은 것임 그냥 일반 컨테이너 접속 명령어와는 아래와 같은 차이가 있다# root로 진입 (위험할 수도 있음)docker exec -it 컨테이너 /bin/bash# 웹서버와 같은 권한으로 진입 (안전, 추천)docker exec -u www-data -it 컨테이너 bashNextcloud 공부하다가 별걸 다 알게 됐다신기...
MySQL 컨테이너 내부에서 SQL 명령어 사용하기 (feat. Docker)
·
Infra/Docker
까먹는 것도 한두번이지오늘은 Docker 컨테이너 내부에 접속해서 확인할 수 있는 간단한 명령어 몇 개를 살펴볼 예정이다너무 자주 까먹어서 포스팅 해둬야겠음1. MySQL 컨테이너 내부 접속# 의미 - 도커 컨테이너 중에 mysql-container라는 이름을 가진, 컨테이너에 bash로 집속하겠다docker exec -it mysql-container bash# docker Docker CLI (명령어 도구) 실행# exec 이미 실행 중인 컨테이너 안에서 명령어를 실행함# -i interactive 모드. 입력을 받을 수 있도록 표준 입력(STDIN) 유지# -t pseudo-TTY 할당. 터미널 환경을 ..
Docker 컨테이너 & 볼륨 싹 다 날리기 (feat. 컨테이너, 볼륨 삭제)
·
Infra/Docker
뭔가 씨게 꼬인 것 같다면... 때론 이만한게 없을 수도 있습니다뭔가 씨게 꼬인 것 같다면 이만한게 없다.. 되던게 없어서 싹다 날리고 다시했더니 그제서야 잘 되었다… 아 필요하거나 중요한게 있다면 미리 백업해두시길!!오늘 작업 요약1. docker compose down으로 컨테이너 중지 및 제거. 2. docker volume rm [volume_name]으로 특정 볼륨 제거 or docker volume prune으로 모든 볼륨 제거. 3. docker rmi [image_name]으로 이미지 제거. 4. docker compose up -d로 새로 설정. 이 과정을 통해 Docker 환경을 완전히 새로 시작할 수 있습니다.1. 현재 실행 중인 컨테이너 중지 및 제거현재 실행 중인 Docker 컨테..
docker-compose up -d vs docker compose up -d 차이
·
Infra/Docker
'버전 차이' 이고, 기능은 똑같다docker compose up -d가 좀 더 최신이며 뭣보다 치기 편하다 도저히 이 둘의 차이가 뭔지 모르겠는데 둘 다 동작하니까 궁금해서 찾아봤던 내용들을 정리해서 포스팅한다위 두줄로 이 포스팅은 제 역할을 다 했음.. 조금만 더 알아보자면 아래로! 1. docker-compose up -d- 얘는 Docker Compose의 V1 명령어 형식이다- docker-compose는 독립적인 패키지로 제공되며, 따로 설치해야 한단다- 이전 버전의 Docker에서 사용됐고, Docker와는 별도로 관리되었다고!- docker-compose(V1)는 Python으로 작성된 독립적인 바이너리2. docker compose up -d- Docker Compose의 V2 명령어 형..
Docker Container 이름 지정하기 (feat. 컨테이너 이름에 -1 지우기)
·
Infra/Docker
컨테이너 명을 정확히 지정하지 않으면 nginx-container-1 같이 자잘하고도 은근 거슬리는 이름이 생성될 수 있다이럴 땐 docker container를 생성할 때 container_name을 써서 명확하게 이름을 명시해주면 해결할 수 있다전후 차이
docker 로그 지속적으로 모니터링하는 방법
·
Infra/Docker
logs 명령어에 -f 만 붙여주면 된다!# 템플릿docker logs -f {컨테이너명}# 예시docker logs -f nakji-lab-backend-f가 없으면 현 컨테이너 로그를 딱 한번만 보여주고 끝나고,-f를 붙이면 현 컨테이너 로그를 실시간으로 보여준다
Docker 서버 시간 설정하기 (feat. 서울 시간)
·
Infra/Docker
이거 한큐에 해결해줄 수 있을줄 알았더니 아니었다!!docker compose 내 이미지마다 environment에 추가해야했다;;한번에 모든 컨테이너 시간 세팅 못하나 세상 귀찮음environment: - TZ=Asia/Seoul
도커(Docker) sudo 없이 실행시키기 (feat. docker sudo 권한)
·
Infra/Docker
매번 docker 입력할 때마다 sudo 입력하는게 너무 귀찮아서 정리해둔다# 1) 도커 그룹 생성sudo groupadd docker# 2) 도커 그룹에 유저추가sudo usermod -aG docker ${유저명}# orsudo gpasswd -a $USER docker# 3) 도커 재시작sudo service docker restart# 4) 현재 사용자 로그아웃 및 재로그인sudo su - // 루트사용자로 변경su - ${유저명} // 사용자로 변경# 5) 테스트docker run hello-world이상없이 잘 되면 docker가 관리자로 등록되어 한번에 해결된 것이다
도커(Docker)란?
·
Infra/Docker
도커(Docker) 리눅스 컨테이너라는 커널 컨테이너 기술을 이용하여 만든 컨테이너 기술 중 하나 컨테이너 기반의 가상화 플랫폼 한줄 요약 : 가상머신처럼 독립적인 플랫폼을 만들긴하는데 대신, 호스트(로컬)의 커널을 공유한다 도커 컨테이너(Docker Container) 응용 프로그램과 그에 필요한 모든 것을 포함하는 경량화된 환경을 제공 호스트 시스템과 격리되어 실행 컨테이너를 생성하면, 독립된 공간(프로세스)이 생성됨 한줄 요약 : 필요한거 다 집어넣어 놓은 컨테이너 무엇을 실행할 땐 이 컨테이너 하나만 고대로 내려받아서 실행하면 버전이든 뭐든간에 충돌할 일 없이 잘된다~ Q. 도커는 가상 머신(VM, virtual Machine)과 무엇이 다른가? 일단 공통점, 둘은 격리된 환경에서 실행하기 위한 ..
반응형