728x90
반응형

Docker 명령 수행시 에러 발생 

  • 도커를 사용 하면서 발생한 문제에 대해 해결 방법에 대한 기록 입니다. 

! no space left on device 에러

에러 내용

ERROR: failed to solve: failed to copy files: userspace copy failed: write /var/lib/docker/overlay2/
83-20240716084622.tar.gz: no space left on device
  • Docker 빌드 과정에서 파일을 복사하는 도중  발생하는 문제로 시스템 디스크 공간 부족 문제로 발생 할수 있습니다. 
  • 에러 발생 디렉 토리로 이동하여 사용현황 확인후 디스크를 정리 합니다. 

해결 방법1

docker system prune -a --volumes
  • 사용하지 않는 Docker 이미지, 컨테이너, 네트워크, 볼륨 등을 삭제하여 공간을 확보합니다.
  • 아래 그림처럼 docker system prune 명령을 수행한후 디스크 용량이 확보 되었습니다. 
    • 단 중지된 컨테이너, 사용하지 않는 이미지, 네트워크, 볼륨을 삭제 하기때문에 사용하는 생성해둔 모든  Docker image 가 삭제 될수 있습니다. 

 

 

해결방법2(추천)

  • Docker 디렉터리 위치 변경
  • /etc/docker/daemon.json 파일을 수정한후 여유있는 디스크로 Docker 디렉토리를 변경 합니다. 
  • vi /etc/docker/daemon.json 
{
     "data-root": "/home/docker-directory"
}
  • 이후 Docker 를 재기동 합니다. 
systemctl restart docker

 

728x90
반응형

'02.Docker & Podman > Docker' 카테고리의 다른 글

[docker-compose] docker-compose 란?  (1) 2022.04.05
Docker 설치  (0) 2022.03.20
자주 사용하는 Docker 명령어  (0) 2022.03.18
사용자 계정에서 Docker Command 사용 방법  (0) 2022.02.22
728x90
반응형

docker-compose 란? 

여러개의 컨테이너가 유기적으로 묶여서 하느의 어플리케이션으로서 동작이 필요할경우 유용하게 사용할수 있는기능입니다. 

 

예를 들어 웹 어플리케이션을 서비스 한다고 했을 때  서비스가 실행되기 위해서는 웹서버(Apache, IIS, Nginx )와 Database(Oralce,Tibero,Mysql,posgressSql) 컨테이너를 생성해야 합니다. 

 

Docker 로 해당 서비스를 수행한다고 하면 아래와 같이 매번 docker run  옵션을 설정해 CLI(Commnad Line Interface) 컨테이너를 생성 해야 합니다. 

docker-compose 는 이런 번거로움을 해결하기 위해 여러 컨테이너를 하나의 서비스로 묶어 다룰수 있도록 작업 환경을 제공합니다. 

 

1.Docker 를 통한 웹 서비스 컨테이너 생성 방법

# Mysql 컨테이너 생성 
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest

#Apach 컨테이너 생성 
$ docker run -d --name apache -p 8080:80 httpd

 

2.docker-compose (docker-compose.yml)를 이용한 웹 서비스 컨테이너 생성 

docker-compose 사용 방법

위 그림 처럼 도커 컴포즈는 docker-compose.yml 에 서비스할 컨테이너를 정의 하고 묶음으로 관리 할수 있다.

  • docker-compose.yml
    • version :YAML 파일 포맷 버전을 나타냅니다. 
    • service : 생성될 컨테이너들의 묶음을 나타냅니다. 
    • apach, mysql : 생성할 서비스 이름입니다. 
version: "3.8"
services:
   apache:
    build: './apache/'
    depends_on:
      - mysql
    networks:
      - frontend
      - backend
    ports:
      - "8080:80"
    volumes:
      - ./public_html/:/var/www/html/
  mysql:
    image: mysql:5.6.40
    networks:
      - backend
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
networks:
  frontend:
  backend:

 

 

3.docker-compose  와 Docker 호환성 메트릭스 

도커컴포즈는 yml 파일로 컨테이너 구성하는데 사용하는 도커 버전에 따라 도커 컴포즈 버전을 맞춰서 사용해야 한다. 

현재 도커 컴포즈 버전은 3.9 버전까지 릴리즈 되어 있습니다. 

아래표는 도커 컴포즈 와 호환되는 도커 버전에대한 호환성 메트릭스 표입니다. 

 

Docker and Docker-compose&nbsp;compatibility matrix

 

https://docs.docker.com/compose/compose-file/compose-file-v3/

 

Compose file version 3 reference

 

docs.docker.com

 

728x90
반응형
728x90
반응형

Ubuntu Repository update

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg    

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker Engine 설치

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
#  sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  docker-ce-rootless-extras docker-scan-plugin git git-man liberror-perl pigz slirp4netns
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
The following NEW packages will be installed:
  containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras docker-scan-plugin git git-man liberror-perl pigz slirp4netns
0 upgraded, 10 newly installed, 0 to remove and 23 not upgraded.
Need to get 104 MB of archives.
After this operation, 448 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://download.docker.com/linux/ubuntu focal/stable amd64 containerd.io amd64 1.5.10-1 [24.9 MB]
..... 중략
Setting up git (1:2.25.1-1ubuntu3.2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.15) ...

Docker Version 선택 설치 

도커는 버전별로 선택해서 설치를 진행 할수 있습니다. 

설치 가능 버전 확인후 선택해서 설치를 진행하면 됩니다. 

설치 버전 확인 

apt-cache madison docker-ce
 docker-ce | 5:20.10.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
 docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

Docker 버전 선택 설치 

#sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
sudo apt-get install docker-ce=5:19.03.15~3-0~ubuntu-focal docker-ce-cli=5:19.03.15~3-0~ubuntu-focal containerd.io

Docker 중지/시작 명령어 

#도커 재시작 
service docker restart

#도커 중지 
service docker stop


#도커 시작 
service docker start

Docker 상태 확인

docker ps -a
728x90
반응형
728x90
반응형

자주사용하는 도커 명령어에 대해 정리해 보았습니다. 

 

Docker Volume 명령어

docker volume create test-volume 

docker volume ls

docker volume inspect test-volume

docker volume rm test-volume

 

docker volume 생성 

[oracle-docker@minsvr:/data1/oracle-docker/oradata]$ docker volume create test-volume
test-volume

 

docker volume list 확인 

[oracle-docker@minsvr:/data1/oracle-docker/oradata]$ docker volume ls
DRIVER    VOLUME NAME
local     compose_config_files
local     compose_db
local     compose_django
local     django-on-docker_media_volume
local     django-on-docker_postgres_data
local     django-on-docker_static_volume
local     oracle-docker_oradata
local     qms-on-docker_media_volume
local     qms-on-docker_postgres_data
local     qms-on-docker_static_volume
local     test-volume

 

docker volume 정보 확인 

[oracle-docker@minsvr:/data1/oracle-docker/oradata]$ docker volume inspect test-volume
[
    {
        "CreatedAt": "2022-03-18T19:29:25+09:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/data300G/docker-image/volumes/test-volume/_data",
        "Name": "test-volume",
        "Options": {},
        "Scope": "local"
    }
]

 

docker volume 삭제

[oracle-docker@minsvr:/data1/oracle-docker/oradata]$ docker volume rm test-volume
test-volume
[oracle-docker@minsvr:/data1/oracle-docker/oradata]$ docker volume ls
DRIVER    VOLUME NAME
local     compose_config_files
local     compose_db
local     compose_django
local     django-on-docker_media_volume
local     django-on-docker_postgres_data
local     django-on-docker_static_volume
local     oracle-docker_oradata
local     qms-on-docker_media_volume
local     qms-on-docker_postgres_data
local     qms-on-docker_static_volume

 

Docker 컨테이너 모두 중지 및 삭제

 docker stop $(docker ps -a -q)
 docker rm $(docker ps -a -q)

 

$ docker ps -a 
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS                    PORTS                                                                                  NAMES
9cffbff6ec74   oracle/database:19.3.0-ee   "/bin/sh -c 'exec $O   24 hours ago   Up 49 minutes (healthy)   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp, 0.0.0.0:5500->5500/tcp, :::5500->5500/tcp   ora19c

$ docker ps -a -q
9cffbff6ec74

Docker Image 모두 삭제

docker rmi $(docker images -q)

Docker Image 리스트 확인

[oracle-docker@minsvr:/data1/oracle-docker]$ docker image ls 
REPOSITORY                           TAG                   IMAGE ID       CREATED          SIZE
192.168.17.83:5000/oracle/database   19.3.0-ee_v2          7a2299cca529   46 minutes ago   6.97GB
oracle/database                      19.3.0-ee             a5a30da1721d   3 weeks ago      6.54GB
oraclelinux                          7-slim                4133e87bc7fa   2 months ago     132MB
apache/ozone-runner                  20200625-1            f6874ac36a4c   21 months ago    1.07GB
tomcat                               8.5.46-jdk8-openjdk   8973f493aa0a   2 years ago      508MB
[oracle-docker@minsvr:/data1/oracle-docker]$ docker images -q
7a2299cca529
a5a30da1721d
4133e87bc7fa
f6874ac36a4c
8973f493aa0a
728x90
반응형
728x90
반응형

일반 계정에서 Docker 실행시 에러 발생 하는 문제 

사용자 계정에서 DOCKER 명령을 수행시에 권한 에러 발생을 합니다. 

일반 사용자 계정에서 Docker 명령을 수행할수 있도록 권한을 변경하는 방법에 대해 알아 보겠습니다. 

$ docker-compose -f docker-compose.test.yml up --build
Traceback (most recent call last):
  File "urllib3/connectionpool.py", line 677, in urlopen
  File "urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1277, in request
  File "http/client.py", line 1323, in _send_request
  File "http/client.py", line 1272, in endheaders
  File "http/client.py", line 1032, in _send_output
  File "http/client.py", line 972, in send
  File "docker/transport/unixconn.py", line 43, in connect
PermissionError: [Errno 13] Permission denied

 

해결 방법 

1.sudoers 파일 사용자 계정 추가

visudo -f /etc/sudoers

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
docker_test ALL=(ALL) ALL

 

2.사용자 계정에 docker 그룹 추가

 

sudo usermod -aG docker $USER 

로컬 시스템 관리자에게 일반적인 지침을 받았으리라 믿습니다.
보통 세가지로 요약합니다:

    #1) 타인의 사생활을 존중하십시오.
    #2) 입력하기 전에 한 번 더 생각하십시오.
    #3) 막강한 힘에는 상당한 책임이 뒤따릅니다.

[sudo] docker_test의 암호:

3.일반 사용자 계정 재 접속 후 Docker(Docker-Compose) 명령 실행 

[docker_test@minsvr:/data1/docker_test]$ exit
logout
[root@minsvr:/root]$ su - docker_test
마지막 로그인: 토  9월 18 16:15:02 KST 2021 일시 pts/20
[docker_test@minsvr:/data1/docker_test]$ cd compose/
[docker_test@minsvr:/data1/docker_test/compose]$ ll
합계 16
drwxr-xr-x. 3 docker_test docker_test 4096  9월 18 15:59 .
drwx------. 6 docker_test docker_test 4096  9월 18 15:59 ..
drwxr-xr-x. 2 docker_test docker_test 4096  9월 18 15:58 app
-rw-r--r--. 1 docker_test docker_test   95  9월 18 15:59 docker-compose.test.yml
[docker_test@minsvr:/data1/docker_test/compose]$ docker-compose -f docker-compose.test.yml up --build

Building db
Sending build context to Docker daemon   2.56kB
Step 1/11 : FROM openjdk:8
 ---> 08121337b7a4
Step 2/11 : MAINTAINER mjk <jungki_min@tmax.co.kr>
 ---> Using cache
 ---> a85abd8125dd
Step 3/11 : RUN apt-get update &&     apt-get install -y     libstdc++6 libaio1 libncurses5 vim expect nmap netcat     && apt-get clean
 ---> Using cache
 ---> cd3f5538bdfd
Step 4/11 : ENV APP_HOME=/home/app
 ---> Running in 71fc6363b5f2
Removing intermediate container 71fc6363b5f2
 ---> 41a120bc13f2
728x90
반응형

'02.Docker & Podman > Docker' 카테고리의 다른 글

[Docker] Docker 사용 시 에러 해결 모음  (0) 2024.08.28
[docker-compose] docker-compose 란?  (1) 2022.04.05
Docker 설치  (0) 2022.03.20
자주 사용하는 Docker 명령어  (0) 2022.03.18

+ Recent posts