728x90
반응형

이 문서는 Rocky Linux 9 환경에서 Harbor를 설치하고 설정하는 과정을 단계별로 정리한 가이드입니다. Docker 기반 설치 환경을 기준으로 합니다.


1. 사전 준비

1.1 서버 환경

  • OS: Rocky Linux 9
  • 최소 사양: CPU 2코어, RAM 4GB 이상, 디스크 40GB 이상

1.2 필수 패키지 설치

sudo dnf -y update
sudo dnf -y install curl wget tar dnf-plugins-core

1.3 Docker 설치

# 기존 Podman 또는 Docker 패키지 제거
sudo dnf remove podman-docker podman

# Docker CE 레포 추가
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Docker CE 설치
sudo dnf -y install docker-ce docker-ce-cli containerd.io

# Docker 서비스 활성화
sudo systemctl enable --now docker

# 버전 확인
docker --version
docker-compose version

참고: Podman 환경에서는 Harbor install.sh가 Docker 버전 체크로 실패할 수 있으므로, 운영 환경에서는 Docker CE 설치를 권장합니다.

1.4 Docker Compose 설치

sudo curl -L "https://github.com/docker/compose/releases/download/2.29.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

2. Harbor 전용 계정 및 디렉토리 설정

2.1 Harbor 전용 계정 생성

sudo useradd -m -s /bin/bash harbor
sudo passwd harbor

2.2 Harbor 디렉토리 이름 변경 및 권한 설정

cd /opt
sudo mv harbor myharbor
sudo chown -R harbor:harbor myharbor

3. Harbor 다운로드 및 설정

3.1 Harbor 다운로드

wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-online-installer-v2.11.0.tgz
tar xvf harbor-online-installer-v2.11.0.tgz
cd harbor

3.2 설정 파일 준비

cp harbor.yml.tmpl harbor.yml
nano harbor.yml

harbor.yml 예시

hostname: harbor.example.com
http:
  port: 8080
harbor_admin_password: Harbor12345
data_volume: /home/harbor/data
  • hostname: Harbor 접속할 도메인 또는 IP
  • port: HTTP 포트 (운영 환경에서는 HTTPS 권장)
  • data_volume: Harbor 이미지 저장 위치, harbor 계정이 접근 가능해야 함

4. Harbor 설치

sudo ./install.sh
  • 설치 완료 후 컨테이너 확인:
docker ps
  • 주요 컨테이너: harbor-core, harbor-db, harbor-portal, harbor-registry

5. 웹 UI 접속

  • 브라우저 접속: http://harbor.example.com:8080
  • 기본 계정:
    • ID: admin
    • PW: Harbor12345

6. Docker 클라이언트에서 Harbor 로그인

docker login harbor.example.com:8080

7. 운영 환경 권장 설정

  • HTTPS 적용: 운영 환경에서는 Let’s Encrypt 등 SSL 인증서 적용 필수
  • 방화벽 설정:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
  • 데이터 저장소 용량 충분히 확보(/home/harbor/data)

8. 참고 사항

  • 테스트/개발 환경: HTTP, Docker CE 또는 Podman + Podman Compose 가능
  • 운영 환경: HTTPS 필수, Docker CE 설치 권장
  • 설치 시 Harbor install.sh에서 Docker 버전 체크 실패 시 Podman 사용 환경에서는 install.sh 수동 실행 또는 우회 필요
728x90
반응형
728x90
반응형

 

dial unix /run/user/0/bus: connect: permission denied 에러 

  • 현상:
    • level=error msg="failed to move the rootless netns pasta process to the systemd user.slice: dial unix /run/user/0/bus: connect: permission denied"
    • rootless 환경에서 Podman을 실행 중인데, DBus 및 systemd 관련 문제가 있어 발생 하는 문제 
[pod_svc]          | time="2025-02-21T15:41:15+09:00" level=error msg="failed to move the rootless netns pasta process to the systemd user.slice: dial unix /run/user/0/bus: connect: permission denied"
[pod_svc]          | [WARN  netavark::dns::aardvark] Failed to delete aardvark-dns entries after failed start: failed to get aardvark pid: IO error: No such file or directory (os error 2)
[pod_svc]          | time="2025-02-21T15:41:15+09:00" level=error msg="Removing timer for container e2d4353bc33469927b0a0a41092a5f89f8c11f2dd1e58c7ea43c14ce3c47277f healthcheck: unable to get systemd connection to remove healthchecks: lstat /tmp/storage-run-1014/systemd: no such file or directory"
[pod_svc]          | Error: unable to start container e2d4353bc33469927b0a0a41092a5f89f8c11f2dd1e58c7ea43c14ce3c47277f: netavark: IO error: Error while applying dns entries: IO error: aardvark-dns failed to start: Failed to connect to bus: No such file or directory

 

  • 조치 
    • Linger=yes 설정 확인 
whoami
id
loginctl show-user $(whoami)
loginctl enable-linger $(whoami)
  • DBus 및 systemd user session 문제 해결
    • 모든 네트워크 및 DNS 설정 삭제 & Podman 시스템 전체 초기화 
rm -rf ~/.config/containers/aardvark-dns
rm -rf ~/.local/share/containers/networks

podman system reset

 

 

Error: creating container storage: the container name "ora19c" is already in use

[oracle19c@rocky9:/nvme/oracle19c/ora19c]$ podman compose -f docker-compose.ora19c.yml up -d 
>>>> Executing external compose provider "/usr/bin/podman-compose". Please see podman-compose(1) for how to disable this message. <<<<

podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 5.2.2
** excluding:  set()
['podman', 'ps', '--filter', 'label=io.podman.compose.project=ora19c', '-a', '--format', '{{ index .Labels "io.podman.compose.config-hash"}}']
['podman', 'network', 'exists', 'ora19c_default']
podman run --name=ora19c -d --label io.podman.compose.config-hash=b535161f910884a22b7eee1fc1500d4d42875ca62d69eb37d5df64cb0aab6066 --label io.podman.compose.project=ora19c --label io.podman.compose.version=1.0.6 --label PODMAN_SYSTEMD_UNIT=podman-compose@ora19c.service --label com.docker.compose.project=ora19c --label com.docker.compose.project.working_dir=/nvme/oracle19c/ora19c --label cohttp://m.docker.compose.project.config_files=docker-compose.ora19c.yml --label com.docker.compose.container-number=1 --label com.docker.compose.service=ora19c --env-file /nvme/oracle19c/ora19c/ora19env -v /nvme/oracle19c/ora19c/oradata/ora19_data:/opt/oracle/oradata -v /nvme/oracle19c/ora19c/tibero:/opt/tibero -v /nvme/oracle19c/ora19c/archive:/home/oracle/archive -v /nvme/oracle19c/ora19c/prs_data:/home/oracle --net ora19c_default --network-alias ora19c -p 1521:1521 -p 5500:5500 --privileged oracle/database:19.3.0-ee
Error: creating container storage: the container name "ora19c" is already in use by 4f831c2930bfbd6b2f5896b31b64a0cf0496fa160d0cd2ee3d1382293a06b08d. You have to remove that container to be able to reuse that name: that name is already in use by an external entity, or use --replace to instruct Podman to do so.
exit code: 125
podman start ora19c
Error: no container with name or ID "ora19c" found: no such container
exit code: 125
  • podman ps -a  | grp [container 이름]:현재 실행 중인  컨테이너 확인
  • 실행중인 컨테이너 삭제 
  • 삭제 안될시 강제 삭제 
#컨테이너 중지및 삭제 
podman stop ora19c
podman rm ora19c

#컨테이너 명으로 삭제 
podman rm -f ora19c
#컨테이너 ID 로 삭제 
podman rm -f 4f831c2930bf

 

[oracle19c@rocky9:/nvme/oracle19c/ora19c]$ podman compose -f docker-compose.ora19c.yml up -d 
>>>> Executing external compose provider "/usr/bin/podman-compose". Please see podman-compose(1) for how to disable this message. <<<<

podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 5.2.2
** excluding:  set()
['podman', 'ps', '--filter', 'label=io.podman.compose.project=ora19c', '-a', '--format', '{{ index .Labels "io.podman.compose.config-hash"}}']
['podman', 'network', 'exists', 'ora19c_default']
podman run --name=ora19c -d --label io.podman.compose.config-hash=b535161f910884a22b7eee1fc1500d4d42875ca62d69eb37d5df64cb0aab6066 --label io.podman.compose.project=ora19c --label io.podman.compose.version=1.0.6 --label PODMAN_SYSTEMD_UNIT=podman-compose@ora19c.service --label com.docker.compose.project=ora19c --label com.docker.compose.project.working_dir=/nvme/oracle19c/ora19c --label cohttp://m.docker.compose.project.config_files=docker-compose.ora19c.yml --label com.docker.compose.container-number=1 --label com.docker.compose.service=ora19c --env-file /nvme/oracle19c/ora19c/ora19env -v /nvme/oracle19c/ora19c/oradata/ora19_data:/opt/oracle/oradata -v /nvme/oracle19c/ora19c/tibero:/opt/tibero -v /nvme/oracle19c/ora19c/archive:/home/oracle/archive -v /nvme/oracle19c/ora19c/prs_data:/home/oracle --net ora19c_default --network-alias ora19c -p 1521:1521 -p 5500:5500 --privileged oracle/database:19.3.0-ee
a20067f10d1356d05aee1f7ae38477ba261ba978a702d6bf81011a4c9bbe240c
[oracle19c@rocky9:/nvme/oracle19c/ora19c]$ podman ps -a
CONTAINER ID  IMAGE                                COMMAND               CREATED        STATUS        PORTS                                           NAMES
a20067f10d13  localhost/oracle/database:19.3.0-ee  /bin/bash -c exec...  3 minutes ago  Up 3 minutes  0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp  ora19c

 

 

728x90
반응형

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

[podman] podman 기본 사용 셋팅  (0) 2025.02.14
728x90
반응형

Podman Registry 설정 방법

기본 레지스트리 지정 방법

  • 설정 파일 : /etc/containers/registries.conf
  • 등록 방법 :unqualified-search-registries
unqualified-search-registries = ["docker.io", "quay.io", "registry.fedoraproject.org"]

 

  • 사용자 지정 프라이빗 레지스트리 등록 방법 : [[registry]]
[[registry]]
location = "myregistry.example.com"
insecure = false

 

  • location : 사용할 레지스트리 주소
  • insecure = false : HTTPS(보안 연결) 사용 (기본값)
  • insecure = true : HTTP(보안 미사용) 허용 (사내 레지스트리에서 필요할 수 있음)

podman 설정 적용 

  • 버전 정보 확인 
podman version

podman compose version
$ podman version
Client:       Podman Engine
Version:      5.2.2
API Version:  5.2.2
Go Version:   go1.22.7 (Red Hat 1.22.7-2.el9_5)
Built:        Tue Nov 12 21:34:59 2024
OS/Arch:      linux/amd64

$ podman compose version
>>>> Executing external compose provider "/hdd/syma8/.local/bin/podman-compose". Please see podman-compose(1) for how to disable this message. <<<<

podman-compose version 1.3.0
podman version 5.2.2
  • podman 재시작 
 systemctl  restart podman

 

podman  기본 사용 명령어 

  • podman image 삭제 방법 
#실행 중인 것 포함하여 모든 컨테이너 정리 
podman stop -a
#컨테이너 삭제 
podman rm -a
#podman 사용 이미지 삭제 
podman rmi -a

#모든 pod 삭제 
podman pod rm -a

#캐시 및 네트워크 데이터도 정리 
podman system prune -a

 

 

podman error  조치 가이드

  • 현상:
    • level=error msg="failed to move the rootless netns pasta process to the systemd user.slice: dial unix /run/user/0/bus: connect: permission denied"
    • rootless 환경에서 Podman을 실행 중인데, DBus 및 systemd 관련 문제가 있어 발생 하는 문제 
[pod_svc]          | time="2025-02-21T15:41:15+09:00" level=error msg="failed to move the rootless netns pasta process to the systemd user.slice: dial unix /run/user/0/bus: connect: permission denied"
[pod_svc]          | [WARN  netavark::dns::aardvark] Failed to delete aardvark-dns entries after failed start: failed to get aardvark pid: IO error: No such file or directory (os error 2)
[pod_svc]          | time="2025-02-21T15:41:15+09:00" level=error msg="Removing timer for container e2d4353bc33469927b0a0a41092a5f89f8c11f2dd1e58c7ea43c14ce3c47277f healthcheck: unable to get systemd connection to remove healthchecks: lstat /tmp/storage-run-1014/systemd: no such file or directory"
[pod_svc]          | Error: unable to start container e2d4353bc33469927b0a0a41092a5f89f8c11f2dd1e58c7ea43c14ce3c47277f: netavark: IO error: Error while applying dns entries: IO error: aardvark-dns failed to start: Failed to connect to bus: No such file or directory

 

  • 조치 
    • Linger=yes 설정 확인 
whoami
id
loginctl show-user $(whoami)
loginctl enable-linger $(whoami)
  • DBus 및 systemd user session 문제 해결
    • 모든 네트워크 및 DNS 설정 삭제 & Podman 시스템 전체 초기화 
rm -rf ~/.config/containers/aardvark-dns
rm -rf ~/.local/share/containers/networks

podman system reset

 

Podman의 스토리지 경로를 변경

  • 현재 podman 스토리지 설정 경로 확인 및 변경 
mkdir /nvme/podman_storage/run
mkdir /nvme/podman_storage/lib

vi /etc/containers/storage.conf

[storage]
driver = "overlay"

# Temporary storage location
#runroot = "/run/containers/storage"
runroot = "/nvme/podman_storage/run"

#graphroot = "/var/lib/containers/storage"
graphroot = "/nvme/podman_storage/lib"




sudo systemctl stop podman
sudo mv /var/lib/containers/storage /nvme/podman_storage/lib
sudo mv /var/run/containers/storage /nvme/podman_storage/run
sudo systemctl start podman
728x90
반응형

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

[podman] podman 에러 발생 및 해결 방법  (0) 2025.04.02
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
반응형
728x90
반응형
  • Docker 사용시 발생한 문제 및 해결책들에 대해 공유 하도록 하겠습니다. 

ERROR: Failed to Setup IP tables

  • 에러: ERROR: Failed to Setup IP tables 에러 
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:
  • 해결책 : systemctl restart docker.service 수행
$ docker-compose up                                
Creating network "dblink_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b50eacddd935 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

$ systemctl restart docker.service

$ systemctl status  docker.service
* docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 화 2022-04-12 12:07:44 KST; 7min ago
     Docs: https://docs.docker.com
 Main PID: 20828 (dockerd)
    Tasks: 11
   Memory: 83.8M
   CGroup: /system.slice/docker.service
           `-20828 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data300G/docker-image


[Podman] 실행 에러 해결: "current system boot ID differs from cached boot ID" 

  • 에러 
    • 비정상 재부팅으로 인해 Podman의 임시 상태 파일이 꼬일때 종종 아래 에러 발생 
$ podman images
Error: current system boot ID differs from cached boot ID; an unhandled reboot has occurred. Please delete directories "/tmp/storage
-run-1017/containers" and "/tmp/storage-run-1017/libpod/tmp" and re-run Podman
  • 해결 방법 : 문제가 되는 임시 디렉토리를 삭제
# 에러 메시지에 나온 경로를 강제 삭제합니다.
sudo rm -rf /tmp/storage-run-1017/containers
sudo rm -rf /tmp/storage-run-1017/libpod/tmp

[Podman] podman logs 내용 미출력 현상 (빈 화면 출력 해결 방법)

Podman 환경에서 docker-compose.yml (또는 podman-compose)을 이용해 컨테이너를 정상적 기동 되었으나 , podman logs [컨테이너명] 명령어를 실행해도 아무런 로그가 출력되지 않고 빈 화면만 나오는 현상이 발생 하는경우 아래 내용이 원인 일수 있습니다.

  • 원인 파악 (Root Cause)

원인은 바로 journald 로그 드라이버 일수도 있다. 

시스템 설정을 확인해 본 결과, Podman의 컨테이너 로그 드라이버가 기본값인 journald로 설정되어 있었습니다.

 

podman inspect myweb --format '{{.HostConfig.LogConfig.Type}}'
journald
  • journald 드라이버를 사용하면 컨테이너의 표준 출력(stdout) 로그가 리눅스 시스템의 systemd-journald 데몬으로 전달 된다.
  • 이때 Root 권한이 아닌 일반 사용자(Non-root User) 권한으로 podman logs를 실행할 경우, 시스템 로그를 읽어올 권한이 부족하여 출력이 안 되거나 빈 화면만 반환 되게 된다. 
  • 해결 방법 : YML 파일에 logging 정보 추가 
# 수정 전
  client:
    # ... 생략 ...
    restart: "no"
    environment:
      - TEST_ENV=1

# ========================================== #

# 수정 후 (logging 추가)
  client:
    # ... 생략 ...
    restart: "no"
    logging:
      driver: k8s-file  # 파일 기반 로그 드라이버 강제 지정
    environment:
      - TEST_ENV=1

 

[Podman]빌드시  no space left on device  에러 발생 

  • write /var/tmp/buildah816211196/layer: no space left on device
    • 원인 :
      • Podman(내부적으로 Buildah 사용)이 이미지를 빌드할 때 임시 파일을 생성 한다.  현재 서버의 /var/tmp 파티션 용량이 꽉 차서 빌드 도중 정상적으로 이미지를 빌드 하지 못하고 종료 하는에러 이다. 
    • 해결 : 
      • 방안1 : /var/tmp/ 디렉 토리 를 삭제하고 용량을 확보하는 방법 
      • 방안2 : 넉넉한 공간으로  tmp 디렉토리를 변경 하는 방법 
        • export TMPDIR=/mnt/nvme/podman_tmp
        • mkdir -p /mnt/nvme/podman_tmp
      • 기존 podman 찌거기 데이터 도 같이 삭제 해준다 . 
#Podman 캐시 및 사용하지 않는 찌꺼기 삭제
podman system prune -a --volumes

#비정상 종료한 Buildah 임시 컨테이너 강제 삭제
buildah rm --all

#/var/tmp 내부의 빌드 찌꺼기 수동 삭제
sudo rm -rf /var/tmp/buildah*
728x90
반응형
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
반응형

docker-compose를 사용해서 Mysql을 설치 진행을 해보겠습니다. 

 

파일 구조는 아래와 같습니다.

 

파일구조

$ tree db
db root directory 
|-- docker-compose.yml // mysql 빌드 파일 
`-- env.mysql // 환경 파일 

 

mysql 환경 파일 (env.mysql)

MYSQL_DATABASE=mysql8
MYSQL_ROOT_PASSWORD=admin
MYSQL_USER=testuser
MYSQL_PASSWORD=userpasswd

 

mysql compose 파일(docker-compose.yml)

version: '3.8'

services:
  mysql_db: ## Service Name

    container_name: mysql-8  ## Container Name

    image: mysql:8.0

    env_file:
      - ./env.mysql

    ports:
      - 23306:3306

    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci

    volumes:
      - ./mysql_data:/var/lib/mysql

 

mysql 설치 (docker-compose up -d)

$ docker-compose up -d --build                                                               
Creating network "db_default" with the default driver
Pulling mysql_db (mysql:8.0)...
8.0: Pulling from library/mysql
f003217c5aae: Pull complete
65d94f01a09f: Pull complete
43d78aaa6078: Pull complete
a0f91ffbdf69: Pull complete
59ee9e07e12f: Pull complete
04d82978082c: Pull complete
70f46ebb971a: Pull complete
db6ea71d471d: Pull complete
c2920c795b25: Pull complete
26c3bdf75ff5: Pull complete
9ec1f1f78b0e: Pull complete
4607fa685ac6: Pull complete
Digest: sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195
Status: Downloaded newer image for mysql:8.0
Creating mysql-8 ... done

 

mysql 상태 확인 

  • docker image ls 명령을 통해 mysql 이미지가 생성된 것을 확인할 수 있습니다. 
$ docker image ls
REPOSITORY                           TAG                   IMAGE ID       CREATED         SIZE
mysql                                8.0                   667ee8fb158e   37 hours ago    521MB
  • docker-compose ps 명령을 통해 컨테이너 상태를 확인할 수 있습니다. 
$ docker-compose ps  
 Name                Command               State                           Ports                        
--------------------------------------------------------------------------------------------------------
mysql-8   docker-entrypoint.sh --cha ...   Up      0.0.0.0:23306->3306/tcp,:::23306->3306/tcp, 33060/tcp

 

mysql Data file 확인 

도커 설치 후 mysql_data 디렉터리가 생성이 되었고 해당 디렉터리에 데이터 파일이 생성됩니다. 

docker-compose 파일에 volume 설정을 하면  호스트 디렉터리에  mysql_data  디렉터리가 없더라도 빌드 과정에서 

자동으로 생성 되게 됩니다. 

 

    volumes:
      - ./mysql_data:/var/lib/mysql =>  [host volume]:[container volume]

 

$ tree db
db
|-- docker-compose.yml
|-- env.mysql
`-- mysql_data
    |-- #ib_16384_0.dblwr
    |-- #ib_16384_1.dblwr
    |-- #innodb_temp [error opening dir]
    |-- auto.cnf
    |-- binlog.000001
    |-- binlog.000002
    |-- binlog.000003
    |-- binlog.index
    |-- ca-key.pem
    |-- ca.pem
    |-- client-cert.pem
    |-- client-key.pem
    |-- ib_buffer_pool
    |-- ib_logfile0
    |-- ib_logfile1
    |-- ibdata1
    |-- ibtmp1
    |-- mysql [error opening dir]
    |-- mysql.ibd
    |-- mysql8 [error opening dir]
    |-- performance_schema [error opening dir]
    |-- private_key.pem
    |-- public_key.pem
    |-- server-cert.pem
    |-- server-key.pem
    |-- sys [error opening dir]
    |-- undo_001
    `-- undo_002

 

mysql 컨테이너 접속 및 실습

  • docker-compose exec mysql_db /bin/bash 명령을 통해 컨테이너에 접속을 합니다.
  • mysql -u testuser  -p --host 127.0.0.1 접속 명령을 통해 mysql에 접속합니다. 
    • MYSQL_USER=testuser
    • MYSQL_PASSWORD=userpasswd
  • show database 명령을 통해 접속 db를 확인합니다.
    • MYSQL_DATABASE=mysql8
  • t_board 테이블을 생성합니다. 
  • show tables  명령을 통해 생성된 테이블을 확인합니다. 
  • t_board  테이블에 데이터를 입력합니다. 
  • 입력한 데이터를 조회합니다. 

 

 

Sample data

CREATE TABLE t_board (
board_idx INT(11) NOT NULL AUTO_INCREMENT COMMENT ' ',
title VARCHAR(300) NOT NULL COMMENT '',
contents TEXT NOT NULL COMMENT '',
hit_cnt SMALLINT(100) NOT NULL DEFAULT '0' COMMENT '',
created_datetime DATETIME NOT NULL COMMENT '',
creator_id VARCHAR(50) NOT NULL COMMENT '',
updated_datetime DATETIME DEFAULT NULL COMMENT '',
updater_id VARCHAR(50) DEFAULT NULL COMMENT '',
deleted_yn CHAR(1) NOT NULL DEFAULT 'N' COMMENT ' ',
PRIMARY KEY (board_idx)
);

insert into t_board(board_idx,title, contents, hit_cnt,created_datetime, creator_id,  deleted_yn)
values(1,'제목','내용 작성',1,SYSDATE(),'tester','N');


select * from t_board;

 

  • 테스트 테스트 진행 
$ docker-compose exec mysql_db /bin/bash
root@24a15adb0cb3:/# ls
bin  boot  dev  docker-entrypoint-initdb.d  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

root@24a15adb0cb3:/var/lib/mysql# mysql -u testuser  -p --host 127.0.0.1
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql8             |
+--------------------+
2 rows in set (0.01 sec)

mysql> use mysql8
Database changed
mysql> CREATE TABLE t_board (
    -> board_idx INT(11) NOT NULL AUTO_INCREMENT COMMENT ' ',
    -> title VARCHAR(300) NOT NULL COMMENT '',
    -> contents TEXT NOT NULL COMMENT '',
    -> hit_cnt SMALLINT(100) NOT NULL DEFAULT '0' COMMENT '',
    -> created_datetime DATETIME NOT NULL COMMENT '',
    -> creator_id VARCHAR(50) NOT NULL COMMENT '',
    -> updated_datetime DATETIME DEFAULT NULL COMMENT '',
    -> updater_id VARCHAR(50) DEFAULT NULL COMMENT '',
    -> deleted_yn CHAR(1) NOT NULL DEFAULT 'N' COMMENT ' ',
    -> PRIMARY KEY (board_idx)
    -> );
Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> show tables;
+------------------+
| Tables_in_mysql8 |
+------------------+
| t_board          |
+------------------+
1 row in set (0.01 sec)

mysql> insert into t_board(board_idx,title, contents, hit_cnt,created_datetime, creator_id,  deleted_yn)
    -> values(1,'',' ',1,SYSDATE(),'tester','N');
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_board;
+-----------+-------+----------+---------+---------------------+------------+------------------+------------+------------+
| board_idx | title | contents | hit_cnt | created_datetime    | creator_id | updated_datetime | updater_id | deleted_yn |
+-----------+-------+----------+---------+---------------------+------------+------------------+------------+------------+
|         1 |       |          |       1 | 2022-03-31 07:34:14 | tester     | NULL             | NULL       | N          |
+-----------+-------+----------+---------+---------------------+------------+------------------+------------+------------+
1 row in set (0.00 sec)


 

728x90
반응형
728x90
반응형

docker-compose 를 이용해 빌드를 진행해 보겠습니다. 

파일 구조는 아래와 같습니다. 

 

os
|-- Dockerfile : 빌드 하기 위한 도커 파일 
`-- docker-compose.dev.yml : docker-compose 에서 실습할 yml 파일 

 

ubuntu 20.04 버전으로 이미지를 만들도록 하겠습니다. 

내용은 없습니다. 

Docker File 생성(Dockerfile) 

FROM ubuntu:20.04
RUN echo " TEST ubuntu"

docker-compose.yml 파일 생성 (docker-compose.dev.yml)

version: '3.8'

services:

     ubuntu: ## Service Name

         container_name: ubuntu20  ## Container Name

         build:
           context: . ## build Docker file location
           dockerfile: Dockerfile ## build file name

 

docker-compose build

docker-compose 수행시 사용되는 default 파일명은 docker-compose.yml 입니다. 

운영과 개발 이미지를 분리하고자 한다면 docker-compose.dev.yml (개발) or docker-compose.prod.yml 처럼 

파일을 분리해서 컨테이너를 관리하면 됩니다. 

 

만약  default 파일이 없다면 아래와 같은 에러가 발생합니다. 

docker-compose build
ERROR: 
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?
        Supported filenames: docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml

 

docker-compose 명령을 통해 Dockerfile 빌드를 진행후 생성된 이미지를 확인 합니다. 

이미지명은 현재 디렉토리명_커테이너명(os_ubuntu )으로 생성됩니다. 

  1. docker-compose -f docker-compose.dev.yml build  // 이미지 빌드 
  2. docker-image ls // 도커 이미지 확인 
$ docker-compose -f docker-compose.dev.yml build 
Building ubuntu
Sending build context to Docker daemon  3.584kB
Step 1/2 : FROM ubuntu:20.04
 ---> ff0fea8310f3
Step 2/2 : RUN echo " TEST ubuntu"
 ---> Using cache
 ---> 70456ca2c54a
Successfully built 70456ca2c54a
Successfully tagged os_ubuntu:latest

$ docker image ls
REPOSITORY                           TAG                   IMAGE ID       CREATED         SIZE
os_ubuntu                            latest                70456ca2c54a   6 hours ago     72.8MB

 

Docker Container 기동 및 확인 

컨테이너 기동 명령어는 docker-compose -f [compose file name ] up or up -d 입니다. -d 일경우 컨테이너가 백그라운드로 실행 되게 됩니다. 

docker-compose -f docker-compose.dev.yml up 또는 

docker-compose -f docker-compose.dev.yml -up -d (백그라운드 실행)

 

컨테이너 상태 확인 시 종료 되어있습니다. 

Docker 는 Virtual machine 이 아니라 가상화된 공간을 제공해 줄 뿐이다 .

이러한 이유로 docker-compose up 을 수행해도  컨테이너는 기동 후 바로 종료된다. 

 

[docker_test@centos7:/data1/docker_test/compose/os]$ docker-compose -f docker-compose.dev.yml up                                
Creating network "os_default" with the default driver
Creating ubuntu20 ... done
Attaching to ubuntu20
ubuntu20 exited with code 0
[docker_test@centos7:/data1/docker_test/compose/os]$ docker ps -an 1
CONTAINER ID   IMAGE       COMMAND   CREATED              STATUS                          PORTS     NAMES
e7a79b9a66fb   os_ubuntu   "bash"    About a minute ago   Exited (0) About a minute ago             ubuntu20

 

Docker Container 접속

  • docker-compose.dev.yml
version: '3.8'

services:

     ubuntu: ## Service Name

         container_name: ubuntu20  ## Container Name

         build:
           context: . ## build Docker file locate
           dockerfile: Dockerfile ## build file name

         command:  tail -f > /dev/null​

재기동 및 접속 

  • docker-compose down : 도커 컨테이너를 중지 시키고 삭제 합니다.
  • docker-compose stop : 도커 컨테이너를 중지 시킵니다. 
  • docker-compose start : 도커 컨테이너를 실행합니다. 
  • docker-compose ps : 컨테이너 상태를 확인합니다.
  • docker-compose exec [servicename] [shell cmd] : 도커 컨테이너 접속 
    • 접속시 컨테이너 명이 아니고 .yml 파일에 작성한  서비스 명(ubuntu)입니다. 

 

 

$ docker-compose -f docker-compose.dev.yml  down           
Stopping ubuntu20 ... done
Removing ubuntu20 ... done
Removing network os_default

docker ps -a
CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS                  PORTS                                                                                  NAMES
$ docker ps -a
CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS                  PORTS                                                                                  NAMES
53513453d705   os_ubuntu                                         "tail -f > /dev/null"    44 seconds ago   Up 4 seconds    ​   os_ubuntu                                         "tail -f > /dev/null"    44 seconds ago   Up 4 seconds

docker-compose -f docker-compose.dev.yml  ps -a      
  Name           Command         State   Ports
----------------------------------------------
ubuntu20   tail -f > /dev/null   Up           

$ docker-compose -f docker-compose.dev.yml exec ubuntu /bin/bash 
root@53513453d705:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

 

728x90
반응형

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

[docker-compose] docker mysql 설치  (0) 2022.04.01
docker-compose 를 이용한 Oracle 19c 설치  (0) 2022.03.22
Docker-compose 설치  (0) 2022.03.21
728x90
반응형

이전에  Docker 를 활용해 Oracle19c 를 설치 하는 방법에 알아 보았습니다. 

이번에는 docker-compose 를 활용해서 Oracle19c 를 설치 해보겠습니다. 

 

설치를 위한 파일 구조 생성 

이전에 소개했던 오라클19c 설치 글 (https://growupcoding.tistory.com/18 ) 내용과 거의 동일 하며 

Docker 오라클 실행 부분만 docker-compose를 활용해 설치해보겠습니다. 

compose 디렉토리 생성 및 공유 디렉토리 권한 변경

  • compose : 파일 및 Oracle19c 가 설치될 파일 디렉토리를 만듭니다. 
  • docker-compose.ora19c.yml : 이미지 빌드를 하기 위한 compose 파일 
  • or19env :  오라클 환경파일(ORACLE_HOME, ORACLE_SID)
  • oradata/ora19_data :오라클 데이터 파일이 생성될 공유 디렉토리

 

oracle-docker@ubuntu2004:~$ tree compose/
compose/
|-- docker-compose.ora19c.yml
|-- or19env
`-- oradata
    `-- ora19_data
        |-- ORCLCDB [error opening dir]
        `-- dbconfig
            `-- ORCLCDB
                |-- listener.ora
                |-- orapwORCLCDB
                |-- oratab
                |-- spfileORCLCDB.ora
                |-- sqlnet.ora
                `-- tnsnames.ora

 

compose 디렉토리 생성

mkdir -p compose/oradata/ora19_data

chmod -Rf 777 compose/oradata/ora19_data

사전 확인 및 준비 사항 (image,환경파일) 

oracle-docker@ubuntu2004:~/compose$ docker image ls
REPOSITORY        TAG         IMAGE ID       CREATED        SIZE
oracle/database   19.3.0-ee   c711d39c5597   2 hours ago    6.53GB
oraclelinux       7-slim      8dd98256c841   10 hours ago   133MB


oracle-docker@ubuntu2004:~/compose$ vi ora19env 
ORACLE_PWD=oracle
ORACLE_SID=orclcdb

docker-compose.yml 작성 

  • env_file : 오라클에서 container 사용하게될 환경 변수 입니다. 
  • image : 빌드를 하게될 오라클 19c 이미지입니다. 
  • ports : 오라클 컨테이너와 통신에 사용하게될 통신 포트 입니다. 설정은 host port: container port 로 작성 합니다. 
  • volumes : 컨테이너와 공유하게될 호스트 볼륨 정보입니다. 
version: '3.8'

 services:
     ora19c:
         container_name: ora19c
 
         env_file:
             - ora19env
 
         image: oracle/database:19.3.0-ee
 
         ports:
             - 1521:1521
             - 5500:5500
 
         volumes:
             - ./oradata/ora19_data:/opt/oracle/oradata
 
         privileged: true

Docker 명령어와 비교해 보겠습니다.

빌드시 항항 명령어를 기억해야 하지만 docker-compose 파일로 관리 하면 이미지별 컨테이너 관리도 쉽습니다. 

또 서비스에 여러개의 컨테이너를 등록 할수도 있습니다. 

  • 오라클 Docker 명령
docker run  \
--name oracle19c \
-p 1519:1521 \
-p 5519:5500 \
-e ORACLE_PWD=oracle \
-e ORACLE_SID=orclcdb \
-v ./data:/opt/oracle/oradata \
oracle/database:19.3.0-ee

 

docker-compose 빌드 

[oracle-docker@ubuntu2004:/home/oracle-docker/compose]$ docker-compose -f docker-compose.ora19c.yml up
Creating network "compose_default" with the default driver
Creating ora19c ... done
Attaching to ora19c
ora19c    | ORACLE EDITION: ENTERPRISE
ora19c    | 
ora19c    | LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-MAR-2022 08:09:28
ora19c    | 
ora19c    | Copyright (c) 1991, 2019, Oracle.  All rights reserved.
ora19c    | 
ora19c    | Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...
ora19c    | 
ora19c    | TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ora19c    | System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
ora19c    | Log messages written to /opt/oracle/diag/tnslsnr/bc698e003576/listener/alert/log.xml
ora19c    | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
ora19c    | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
ora19c    | 
ora19c    | Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
ora19c    | STATUS of the LISTENER
ora19c    | ------------------------
ora19c    | Alias                     LISTENER
ora19c    | Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ora19c    | Start Date                19-MAR-2022 08:09:32
ora19c    | Uptime                    0 days 0 hr. 0 min. 3 sec
ora19c    | Trace Level               off
ora19c    | Security                  ON: Local OS Authentication
ora19c    | SNMP                      OFF
ora19c    | Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
ora19c    | Listener Log File         /opt/oracle/diag/tnslsnr/bc698e003576/listener/alert/log.xml
ora19c    | Listening Endpoints Summary...
ora19c    |   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
ora19c    |   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
ora19c    | The listener supports no services
ora19c    | The command completed successfully
ora19c    | Prepare for db operation
ora19c    | 8% complete
ora19c    | Copying database files
ora19c    | 31% complete
ora19c    | Creating and starting Oracle instance
ora19c    | 32% complete
ora19c    | 36% complete
ora19c    | 40% complete
ora19c    | 43% complete
ora19c    | 46% complete
ora19c    | Completing Database Creation
ora19c    | 51% complete
ora19c    | 54% complete
ora19c    | Creating Pluggable Databases
ora19c    | 58% complete
ora19c    | 77% complete
ora19c    | Executing Post Configuration Actions
ora19c    | 100% complete
ora19c    | Database creation complete. For details check the logfiles at:
ora19c    |  /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
ora19c    | Database Information:
ora19c    | Global Database Name:ORCLCDB
ora19c    | System Identifier(SID):ORCLCDB
ora19c    | Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
ora19c    | 
ora19c    | SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 19 08:41:27 2022
ora19c    | Version 19.3.0.0.0
ora19c    | 
ora19c    | Copyright (c) 1982, 2019, Oracle.  All rights reserved.
ora19c    | 
ora19c    | 
ora19c    | Connected to:
ora19c    | Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ora19c    | Version 19.3.0.0.0
ora19c    | 
ora19c    | SQL> 
ora19c    | System altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | System altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | Pluggable database altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | PL/SQL procedure successfully completed.
ora19c    | 
ora19c    | SQL> SQL> 
ora19c    | Session altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | User created.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | User altered.
ora19c    | 
ora19c    | SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ora19c    | Version 19.3.0.0.0
ora19c    | The Oracle base remains unchanged with value /opt/oracle
ora19c    | The Oracle base remains unchanged with value /opt/oracle
ora19c    | #########################
ora19c    | DATABASE IS READY TO USE!
ora19c    | #########################
ora19c    | The following output is now a tail of the alert.log:
ora19c    | ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ora19c    | ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
ora19c    | 2022-03-19T08:41:28.125385+00:00
ora19c    | ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
ora19c    | 2022-03-19T08:41:28.318093+00:00
ora19c    | ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ora19c    |    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
ora19c    | Completed:    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
ora19c    | 
ora19c    | XDB initialized.
ora19c    | 2022-03-19T08:50:54.083033+00:00
ora19c    | ORCLPDB1(3):Resize operation completed for file# 10, old size 327680K, new size 337920K
ora19c    | 2022-03-19T09:00:56.067953+00:00
ora19c    | Resize operation completed for file# 3, old size 522240K, new size 532480K

Docker 프로세스 확인

  • docker-compose -f docker-compose.ora19c.yml ps -a
  • docker ps -a 

oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml ps -a
 Name               Command                  State                                             Ports                                       
-------------------------------------------------------------------------------------------------------------------------------------------
ora19c   /bin/sh -c exec $ORACLE_BA ...   Up (healthy)   0.0.0.0:1521->1521/tcp,:::1521->1521/tcp, 0.0.0.0:5500->5500/tcp,:::5500->5500/tcp
oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml ps 
 Name               Command                  State                                             Ports                                       
-------------------------------------------------------------------------------------------------------------------------------------------
ora19c   /bin/sh -c exec $ORACLE_BA ...   Up (healthy)   0.0.0.0:1521->1521/tcp,:::1521->1521/tcp, 0.0.0.0:5500->5500/tcp,:::5500->5500/tcp
oracle-docker@ubuntu2004:~/compose$ docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED             STATUS                   PORTS                                                                                  NAMES
bc698e003576   oracle/database:19.3.0-ee   "/bin/sh -c 'exec $O   About an hour ago   Up 5 minutes (healthy)   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp, 0.0.0.0:5500->5500/tcp, :::5500->5500/tcp   ora19c

 

Docker Container 실행 및 컨테이너 접속

 

실행결과

oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml up -d
Starting ora19c ... done
oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml exec ora19c /bin/bash
[oracle@01a4f713764f ~]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 19 23:13:42 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dual;

D
-
X

SQL> 

Docker-compose 기본 명령 

docker-compose -f [docker compose 파일] [명령어]
docker-compose -f docker-compose.ora19c.yml up
docker-compose -f docker-compose.ora19c.yml up -d // 백그라운드 모드 실행 

docker-compose -f docker-compose.ora19c.yml start // 정지한 컨테이너를 시작
docker-compose -f docker-compose.ora19c.yml start ora19c // 컨테이너가 여러개일경우 ora19c 

docker-compose -f docker-compose.ora19c.yml restart // 이미 실행 중인 컨테이너 다시 시작





docker-compose -f docker-compose.ora19c.yml stop // 컨테이너 중지

docker-compose -f docker-compose.ora19c.yml down // 컨테이너 중지및 삭제

docker-compose -f docker-compose.ora19c.yml  logs // 컨테이너로그 확인

docker-compose -f docker-compose.ora19c.yml ps // 컨테이너 목록 

//Docker 접속 
docker-compose exec [컨테이너] [명령어]
docker-compose -f docker-compose.ora19c.yml exec ora19c /bin/bash​
728x90
반응형
728x90
반응형

docker-compose install

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

docker-compose 권한 부여

sudo chmod +x /usr/local/bin/docker-compose

 

docker-compose 버전 확인

docker-compose --version

 

실행 

 

docker compose V1 , V2

  • docker-compose 는 2023 년 7월 이후 더이상 업데이트 되지 않습니다. 

  • 지금까지 사용했던 compose 버전은 V1 이 였습니다. 
  • 앞으로 더이상 지원 하지 않는 버전이라고 하니 V1 삭제후 V2 로 재설치 하는 방법에 대해 알아봅니다. 
  • 다시말하면 docker-compose 은 v1 이고  docker compose(하이픈 - 없는것) 은 V2 버전으로 알고 있으면 되겠네요.

https://docs.docker.com/compose/migrate/#what-are-the-differences-between-compose-v1-and-compose-v2

 

Migrate to Compose V2

How to migrate from Compose V1 to V2

docs.docker.com

 

 

docker compose  V2 Install 

  • 설치된 v1 을 삭제 하고 v2 를 설치 합니다. 

docker-compose  v1 uninstall 

sudo yum remove docker-compose-plugin

 

docker-compose  v2 install 

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

설치 버전 확인 

[root@centos7:/root]$ docker --version
Docker version 26.1.4, build 5650f9b
[root@centos7:/root]$ docker compose version
Docker Compose version v2.27.1
728x90
반응형

+ Recent posts