services:
  oracle:
    image: oracleinanutshell/oracle-xe-11g:latest
    container_name: oracle11g
    hostname: oracle11g
    restart: always
    ports:
      - "1522:1521"
      - "8080:8080" # Oracle Enterprise Manager HTTP port
    environment:
      ORACLE_SID: ORCL
      ORACLE_ALLOW_REMOTE: true
      TZ: Asia/Seoul
    volumes:
      - ./oracle-data-11g:/opt/oracle/oradata

 

 

# Oracle 초기 비번은 oracle

 

SaveAs : Oracle.yml

Execute : docker-compose -f 경로\Oracle.yml up -d

728x90
반응형

version: '3.8'
name: MSSQL2022

services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2022-latest
    user: root
    restart: always
    container_name: MSSQL2022
    hostname: MSSQL2022
    ports:
      - 1431:1433
    volumes:
      - ./db/mssql/data:/var/opt/mssql/data
    environment:
      ACCEPT_EULA: Y
      MSSQL_SA_PASSWORD : XXXXXX
      TZ: Asia/Seoul

 

SaveAs : test.yml

Execute : docker-compose -f 경로\test.yml up -d

728x90
반응형

1. 도커 컨테이너 생성시 Timezone 설정

(1) 환경 변수 TZ 추가

- 컨테이너 환경 변수 TZ에 원하는 타임존으로 할당하면 된다.

# docker run [옵션] 이미지명 [명령어] [인수...]
PS E:\docker> docker run -d --name db -e TZ=Asia/Seoul mcr.microsoft.com/mssql/server:2022-latest

[옵션]

  • --detach, -d : 컨테이너를 생성하고 백그라운드에서 실행한다
  • -name : 컨테이너 이름 지정
  • --publish, -p : 컨테이너의 포트를 호스트에 게시
  • --volumes, -v : 볼륨 바인드 마운트 설정
  • --user, -u : 사용자 이름 또는 UID
  • --env, -e : 컨테이너 내에서 사용할 환경 변수 설정
  • --hostname, -h : 컨테이너의 호스트 이름 설정
  • --restart : 컨테이너 종료시, 재시작 정책 설정(always : 항상 재시작, on-failure : 종료 스테이터스가 0이 아닐 때 재시작. --rm 옵션과 --restart 옵션은 동시에 사용할 수 없습니다.)

(2) 도커 컴포즈 파일 설정

- 도커 컴포즈 파일(docker-compose.yml)환경 변수 TZ를 원하는 타임존으로 할당하면 된다.

services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2022-latest

...........................................................

    environment:
      TZ: Asia/Seoul

(3) dockerfile에서 설정

- 컨테이너를 띄울 때 말고 이미지 자체에 설정을 하고 싶은 경우 Dockerfile을 수정할 수 있다. Dockerfile에 다음을 추가한다.

...........................................................
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y tzdata

ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
...........................................................
  • DEBIAN_FRONTEND=noninteractive 설정을 해두면 패키지 설치시 사용자의 입력을 받지 않고 넘어간다.
  • 만약 /usr/share/zoneinfo가 존재하지 않아서 오류가 발생한다면, RUN apt-get install -y tzdata 명령어로 tzdata(time zone data)을 설치한다.
  • $TZ 환경 변수에 저장된 값을 읽어와서 시간대를 설정한다. $TZ환경 변수는 이미지를 빌드할 때 --build-arg 플래그로 전달되는 값으로, Dockerfile 내에서 $TZ 환경 변수를 사용하면 빌드할 때 전달한 시간대 값이 설정된다.
  • 다음으로 /usr/share/zoneinfo/$TZ 파일을 /etc/localtime파일로 심볼릭 링크를 걸어서 시간대 설정을 한다. 이를 통해 호스트 컴퓨터의 시간대를 쉽게 컨테이너 내부로 가져올 수 있다.
  • 마지막으로, $TZ값을 /etc/timezone 파일에 저장한다. 이를 통해 컨테이너 내부의 시간대 설정이 영구적으로 유지되도록 한다.

2. 도커 컨테이너 생성후 Timezone 변경

(1) 도커 컨테이너 shell 환경에서 타임존 변경 명령어 이용

터미널에서 아래 명령어를 이용하여 컨테이너 shell 환경 root 권한으로 접속

PS E:\docker> docker exec -u root -it mssql2022 /bin/bash

② 커맨드 창에 아래와 같이 타임존 변경 명령어를 입력후 항목 선택(6 : Asia, 69 : Seoul 선택)

 
root@c80af4f2ea67:/# dpkg-reconfigure tzdata
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by
presenting a list of cities, representing the time zones in which they are located.

  1. Africa   3. Antarctica  5. Arctic  7. Atlantic  9. Indian    11. US
  2. America  4. Australia   6. Asia    8. Europe    10. Pacific  12. Etc
Geographic area: 6

Please select the city or region corresponding to your time zone.

  1. Aden      16. Brunei       31. Hong_Kong    46. Kuala_Lumpur  61. Pyongyang      76. Tehran
  2. Almaty    17. Chita        32. Hovd         47. Kuching       62. Qatar          77. Tel_Aviv
  3. Amman     18. Choibalsan   33. Irkutsk      48. Kuwait        63. Qostanay       78. Thimphu
  4. Anadyr    19. Chongqing    34. Istanbul     49. Macau         64. Qyzylorda      79. Tokyo
  5. Aqtau     20. Colombo      35. Jakarta      50. Magadan       65. Rangoon        80. Tomsk
  6. Aqtobe    21. Damascus     36. Jayapura     51. Makassar      66. Riyadh         81. Ujung_Pandang
  7. Ashgabat  22. Dhaka        37. Jerusalem    52. Manila        67. Sakhalin       82. Ulaanbaatar
  8. Atyrau    23. Dili         38. Kabul        53. Muscat        68. Samarkand      83. Urumqi
  9. Baghdad   24. Dubai        39. Kamchatka    54. Nicosia       69. Seoul          84. Ust-Nera
  10. Bahrain  25. Dushanbe     40. Karachi      55. Novokuznetsk  70. Shanghai       85. Vientiane
  11. Baku     26. Famagusta    41. Kashgar      56. Novosibirsk   71. Singapore      86. Vladivostok
  12. Bangkok  27. Gaza         42. Kathmandu    57. Omsk          72. Srednekolymsk  87. Yakutsk
  13. Barnaul  28. Harbin       43. Khandyga     58. Oral          73. Taipei         88. Yangon
  14. Beirut   29. Hebron       44. Kolkata      59. Phnom_Penh    74. Tashkent       89. Yekaterinburg
  15. Bishkek  30. Ho_Chi_Minh  45. Krasnoyarsk  60. Pontianak     75. Tbilisi        90. Yerevan
Time zone: 69


Current default time zone: 'Asia/Seoul'
Local time is now:      Sat Jul  6 14:06:03 KST 2024.
Universal Time is now:  Sat Jul  6 05:06:03 UTC 2024.
 

(2) 도커 컨테이너 shell 환경에서 /etc/localtime 심볼릭 링크 이용

① 터미널에서 아래 명령어를 이용하여 컨테이너 shell 환경 root 권한으로 접속

PS E:\docker> docker exec -u root -it mssql2022 /bin/bash

② 기존의 localtime(심볼릭링크)을 삭제

root@c80af4f2ea67:/# rm -rf /etc/localtime

③ 한국표준시로 새로운 심볼릭 링크를 생성

root@c80af4f2ea67:/# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

(3) 설정 파일 config.v2.json 수정

- config.v2.json 파일 Env 항목에 "TZ=원하는 타임존"으로 추가 또는 수정하면 된다.

① 사용중인 컨테이너 아이디 얻기

PS E:\docker> docker inspect {container-name}
[
    {
        "Id": "{container-id}",
...........................................................

② 도커 엔진 종료

# 리눅스 $ sudo systemctl stop docker

- 리눅스는 위 명령어로 도커 엔진를 종료시키고, 윈도우 도커 데스크탑은 태스크 트레이에서 도커 데스크톱을 마우스 우클릭 후에 Quit Docker Desktop을 선택하면 엔진이 종료된다.

③ config.v2.json 파일 수정

- 리눅스 파일 위치

/var/lib/docker/containers/{container-id}/config.v2.json

- 윈도우 파일 위치

\\wsl.localhost\docker-desktop-data\data\docker\containers\{container-id}/config.v2.json
# 리눅스
$ vi /var/lib/docker/containers/{container-id}/config.v2.json

{
...........................................................
"Env": [
"TZ=Asia/Seoul",
...........................................................
],
...........................................................
}

- 리눅스는 vi로 config.v2.json 파일을 수정하고, 윈도우는 메모장으로 해당 파일을 열어서 수정한다.

④ 도커 엔진 시작

# 리눅스
$ sudo systemctl start docker

- 리눅스는 위 명령어로 도커 엔진를 시작시키고, 윈도우는 바탕화면 또는 시작 메뉴에 Docker Desktop 링크를 클릭해 Docker Desktop을 실행한다.

 


출처 : https://blog.naver.com/islove8587/223503368641

728x90
반응형

1. 도커 컴포즈 파일 작성하기

ORACLE은 아래와 같은 설정으로 docker-compose.yml 파일을 작성할 수 있다.

services:
  oracle21c:
    image: gvenzl/oracle-xe:latest
    restart: always
    container_name: oracle21c
    ports:
      - 1521:1521
      - 5500:5500
    volumes:
      - ./db/oracle/data:/opt/oracle/oradata
    environment:
      ORACLE_PASSWORD: developer123!@
      TZ: Asia/Seoul
    privileged: true
  • image => 도커 허브 gvenzl/oracle-xe 사이트 참조
  • restart는 오류 발생 시 재시작 여부 또는 첫 부팅 시 자동 실행 여부. Docker 시작될 시에 컨테이너가 자동으로 시작되게 하고 싶으면(컴퓨터를 켜고 docker를 실행만 하면 ORACLE을 쓰게 하고 싶으면 always를 넣자)
  • container_name 원하는 이름으로 설정
  • port 설정

- 1521:1521 => ORACLE 기본 포트 번호

- 5500:5500 => ORACLE를 관리하기 위한 웹 접속 포트 번호

  • volumes => 컨테이너 내부 데이터를 디스크와 공유하기 위해 volume 설정
  • 그 외 필요한 environment(환경 변수) 설정

- ORACLE_PASSWORD : ORACLE 접속 암호

- TZ : 도커 컨테이너 타임존 설정

  • privileged => 기본적으로는 Unprivileged 모드로 실행되며, 이 모드에서는 시스템 주요 자원에 접근할 수 있는 권한이 부족하여, 특정 시스템 자원에 접근하기 위해 privileged을 true로 설정

2. 도커 컨테이너 생성하기

① 바탕화면 또는 시작 메뉴에 Docker Desktop 링크를 클릭해 Docker Desktop을 실행한다.

② 터미널에서 docker-compose_oracle.yml 파일이 있는 위치로 이동하여 아래와 같은 명령어를 실행한다.

PS E:\Docker> docker-compose -p db -f docker-compose_oracle.yml up -d

③ 해당 컨테이너가 제대로 생성되었는지 아래와 같은 명령어로 컨테이너 목록을 확인한다.

PS E:\Docker> docker ps

④ 열려진 포트 확인

PS E:\docker> netstat -ano | findstr -i "1521 5500"

⑤ Docker Desktop에서 실행 중인 것을 확인할 수 있다.

3. ORACLE SQL Developer를 통해 접속 확인

(1) 오라클 사용자 생성

① 터미널에서 아래 명령어를 이용하여 오라클 컨테이너 shell 환경 root 권한으로 sqlplus을 실행하여 관리자 계정으로 오라클 접속

PS E:\docker> docker exec -u root -it oracle21c sqlplus
......................................................
Enter user-name: system
Enter password:
......................................................
Last Successful login time: Tue Jul 02 2024 17:29:23 +09:00
......................................................
SQL>

② 사용자 생성

SQL> CREATE USER developer IDENTIFIED BY "developer123!@";

③ 사용자 권한 부여

SQL> GRANT CONNECT, RESOURCE, DBA TO developer;

- CONNECT : 사용자가 데이터베이스에 접속 가능하도록 하기 위해 다음과 같이 가장 기본적인 시스템 권한 8가지를 묶어 놓았습니다.

(ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW)

- RESOURCE : 사용자 객체(테이블, 뷰, 인덱스)를 생성할 수 있도록 하기위해서 시스템 권한을 묶어 놓았습니다.

(CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER)

- DBA : 사용자들이 소유한 데이터베이스를 관리하고 사용자들을 작성하고 변경하고 제거할 수 있도록 하는 모든 권한을 가집니다.

(2) SQL Developer를 통해 접속 확인

① 오라클 db 접속용 프로그램을 다운로드한다.

- Oracle SQL Developer Downloads

본인 OS 환경에 맞는 플랫폼을 찾아 동의 후 압축파일을 다운로드해 준다.

이미 로그인이 되어있다면 바로 파일이 다운로드해지고, 비로그인 상태에서 다운을 클릭하여 로그인 페이지로 이동되어 로그인(회원가입) 후 파일이 받아진다.

② 압축파일을 경로를 지정하여 압축을 푼 다음, 압축 푼 파일에서 sqldeveloper.exe 실행파일을 클릭하여 실행한다.

③ 위에서 생성한 사용자 접속 정보를 넣은 후에 테스트 -> 접속을 시도한다.

④ 정상적으로 진행이 잘 되었다면 아래 사진처럼 접속이 완료

- 쿼리 분석기에서 아래 쿼리로 버전 확인

SELECT * FROM PRODUCT_COMPONENT_VERSION;

- 쿼리 분석기에서 아래 쿼리로 해당 유저에게 부여된 시스템 권한 확인

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DEVELOPER';

- 쿼리 분석기에서 아래 쿼리로 해당 유저에게 부여된 롤(권한 집합) 확인

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'DEVELOPER';

- 쿼리 분석기에서 아래 쿼리로 현재 타임존, 일시 확인

SELECT SESSIONTIMEZONE AS "CUR_TIMEZONE", TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS "CUR_DATETIME" FROM DUAL;
728x90
반응형

1. 윈도우 WSL 설정을 통한 도커 데스크탑 데이터 저장 위치 접근 방법

(1) WSL 다른 배포판(Ubuntu)에 마운트

① Windows 터미널에서 WSL 다른 배포판(Ubuntu_20.04.6_LTS)에 vhdx 이미지 파일을 마운트

# wsl -d <working system> --mount --vhd <path to image>\<image name>.vhdx --bare
PS C:\Users\islove8587> wsl -d Ubuntu_20.04.6_LTS --mount --vhd E:\WSL\Docker\ext4.vhdx --bare
작업을 완료했습니다.

② Ubuntu_20.04.6_LTS 배포판 root 계정으로 접속

PS C:\Users\islove8587> wsl -d Ubuntu_20.04.6_LTS -u root
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.146.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Jun  9 15:59:17 KST 2024

  System load:  0.9                 Processes:             43
  Usage of /:   0.2% of 1006.85GB   Users logged in:       0
  Memory usage: 1%                  IPv4 address for eth0: 172.18.144.236
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

51 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status



This message is shown once a day. To disable it please create the
/root/.hushlogin file.
root@DESKTOP-4SUN7F6:/mnt/c/Users/islove8587# cd ~
root@DESKTOP-4SUN7F6:~#

③ 마운트 할 디렉터리 생성

root@DESKTOP-4SUN7F6:~# mkdir /docker-desktop-data-mnt

마운트 지점에 장치를 마운트 후 해당 디렉터리로 이동

root@DESKTOP-4SUN7F6:~# mount /dev/sdc /docker-desktop-data-mnt
root@DESKTOP-4SUN7F6:~# cd /docker-desktop-data-mnt

⑤ 마운트 한 디렉터리 내용 보기

root@DESKTOP-4SUN7F6:/docker-desktop-data-mnt# ls -al
total 3320
drwxr-xr-x 17 root root    4096 Jun  9 15:35 .
drwxr-xr-x 21 root root    4096 Jun  9 16:05 ..
drwxr-xr-x  3 root root    4096 May  2 15:52 .docker
drwxr-xr-x  2 root root    4096 May  2 15:52 bin
drwxr-xr-x 11 root root    4096 May  2 15:52 data
drwxr-xr-x  4 root root    4096 Apr 19  2017 dev
drwxr-xr-x  2 root root    4096 Jun  9 15:35 etc
-rwxr-xr-x  1 root root       0 Jun  9 15:35 init
drwxr-xr-x  3 root root    4096 May 23 16:55 isocache
drwxr-xr-x  3 root root    4096 May  2 15:52 lib
drwx------  2 root root   16384 May  2 15:52 lost+found
drwxr-xr-x  7 root root    4096 May  2 15:52 mnt
drwxr-xr-x  2 root root    4096 Apr 19  2017 proc
drwxr-xr-x  2 root root    4096 May  2 15:52 run
drwxr-xr-x  2 root root    4096 May  2 15:52 sbin
drwxr-xr-x  2 root root    4096 Apr 19  2017 sys
drwxrwxrwt  3 root root    4096 May  2 15:52 tmp
drwxr-xr-x  3 root root    4096 May  2 15:52 usr
-rwxr-xr-x  1 root root 3316560 Mar 20 22:47 wsl-keepalive
root@DESKTOP-4SUN7F6:/docker-desktop-data-mnt#

Docker root 디렉터리 구조 보기

root@DESKTOP-4SUN7F6:/docker-desktop-data-mnt# ls -al data/docker
total 60
drwx--x--- 12 root root  4096 Jun  8 15:05 .
drwxr-xr-x 11 root root  4096 May  2 15:52 ..
drwx--x--x  5 root root  4096 Jun  1 14:17 buildkit
drwx--x---  7 root root  4096 Jun  8 17:31 containers
-rw-------  1 root root    36 May  2 15:52 engine-id
drwx------  3 root root  4096 May  2 15:52 image
drwxr-x---  3 root root  4096 May  2 15:52 network
drwx--x--- 95 root root 12288 Jun  8 17:31 overlay2
drwx------  4 root root  4096 May  2 15:52 plugins
drwx------  2 root root  4096 Jun  8 15:05 runtimes
drwx------  2 root root  4096 May  2 15:52 swarm
drwx------  2 root root  4096 Jun  8 17:34 tmp
drwx-----x 11 root root  4096 Jun  8 15:05 volumes
root@DESKTOP-4SUN7F6:/docker-desktop-data-mnt#

⑦ docker-desktop-data-mnt 디렉터리 마운트 해제 후 삭제

root@DESKTOP-4SUN7F6:/docker-desktop-data-mnt# cd ~
root@DESKTOP-4SUN7F6:~# umount /docker-desktop-data-mnt
root@DESKTOP-4SUN7F6:~# rm -rf /docker-desktop-data-mnt
root@DESKTOP-4SUN7F6:~#

⑧ Windows 터미널로 돌아가 이미지를 마운트 해제

root@DESKTOP-4SUN7F6:~# exit logout
PS C:\Users\islove8587> wsl --unmount \\?\E:\WSL\Docker\ext4.vhdx 작업을 완료했습니다.
PS C:\Users\islove8587>

(2) 도커 데스크탑 데이터를 마운트 한 컨테이너(ubuntu)를 생성

① /var/lib/docker 폴더를 마운트 하는 ubuntu 컨테이너를 생성하여, shell 환경으로 실행

PS C:\Users\islove8587> docker run --name ubuntu -v/:/data -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
00d679a470c4: Pull complete
Digest: sha256:e3f92abc0967a6c19d0dfa2d55838833e947b9d74edbcb0113e48535ad4be12a
Status: Downloaded newer image for ubuntu:latest
root@b7d48f10f7d0:/#

② root(/) 디렉터리, 즉 최상위 디렉터리 위치를 마운트 한 /data 변경

root@b7d48f10f7d0:/# chroot /data
sh-5.2#

Info

chroot란 Change Root Directiory의 줄임말로 현재 실행 중인 프로세스와 자녀 프로세스의 루트 디렉터리를 변경하는 작업입니다.

Docker root 디렉터리 구조 보기

sh-5.2# ls -la /var/lib/docker
total 60
drwx--x---  12 root root  4096 Jun  8 06:05 .
drwxr-xr-x  11 root root  4096 May  2 06:52 ..
drwx--x--x   5 root root  4096 Jun  1 05:17 buildkit
drwx--x---   9 root root  4096 Jun  8 07:21 containers
-rw-------   1 root root    36 May  2 06:52 engine-id
drwx------   3 root root  4096 May  2 06:52 image
drwxr-x---   3 root root  4096 May  2 06:52 network
drwx--x--- 106 root root 12288 Jun  8 07:21 overlay2
drwx------   4 root root  4096 May  2 06:52 plugins
drwx------   2 root root  4096 Jun  8 06:05 runtimes
drwx------   2 root root  4096 May  2 06:52 swarm
drwx------   2 root root  4096 Jun  8 07:19 tmp
drwx-----x  11 root root  4096 Jun  8 06:05 volumes
sh-5.2#

④ Windows 터미널로 돌아가서, 생성한 ubuntu 컨테이너 삭제 처리

sh-5.2# exit
exit
root@8cb301cf9ef1:/# exit
exit

What's next?
  Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug ubuntu
  Learn more at https://docs.docker.com/go/debug-cli/
PS C:\Users\islove8587> docker stop ubuntu     # ubuntu 컨테이너 중지
ubuntu
PS C:\Users\islove8587> docker rm ubuntu       # ubuntu 컨테이너 삭제
ubuntu
PS C:\Users\islove8587> docker rmi ubuntu      # ubuntu 컨테이너 이미지 삭제
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:e3f92abc0967a6c19d0dfa2d55838833e947b9d74edbcb0113e48535ad4be12a
Deleted: sha256:17c0145030df106e60e5d99149d69810db23b869ff0d3c9d236279a5a7bbb6b3
Deleted: sha256:42d3f8788282c6e48bac7236609753b240db353465dc55cb77c21f2391720dd9
PS C:\Users\islove8587>

 

 

출처 : https://blog.naver.com/islove8587/223473752762

728x90
반응형

[참고 사이트]​

- [Docker] Windows WSL 설정을 통한 Docker Desktop 저장 경로 변경

1. 윈도우 WSL 설정을 통한 도커 데스크탑 데이터 저장 경로 변경

(1) Docker Desktop 디스크 이미지 파일 경로 확인

- docker-desktop 경로

- docker-desktop-data 경로

(2) WSL 상태 확인 및 Docker 종료 확인

PS C:\Users\islove8587> wsl --list -v
  NAME                   STATE           VERSION
* Ubuntu_20.04.6_LTS     Stopped         2
  docker-desktop         Stopped         2
  AmazonLinux2           Stopped         2
  RockyLinux9            Stopped         2
  docker-desktop-data    Stopped         2
PS C:\Users\islove8587>

(3) Docker Desktop 데이터(docker-desktop-data) TAR로 Export

① 신규 저장 경로 생성

PS C:\Users\islove8587> cd E:/
PS E:\> mkdir /WSL/Docker/Data


    디렉터리: E:\WSL\Docker


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----      2024-06-10   오후 1:58                Data

데이터 TAR로 Export

PS E:\> wsl --export docker-desktop-data "E:\WSL\Docker\Data\docker-data.tar"
내보내기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.

(4) WSL 등록 해제

① WSL 등록 해제

PS E:\> wsl --unregister docker-desktop-data
등록 취소 중입니다.
작업을 완료했습니다.

② WSL 상태 확인

PS E:\> wsl --list -v
  NAME                  STATE           VERSION
* Ubuntu_20.04.6_LTS    Stopped         2
  docker-desktop        Stopped         2
  AmazonLinux2          Stopped         2
  RockyLinux9           Stopped         2

③ Docker Desktop 데이터 기존 경로 확인

- 기존에 존재하던 디스크 이미지 파일이 없어집니다.

(5) WSL 등록

① WSL 등록

PS E:\> wsl --import docker-desktop-data "E:\WSL\Docker\Data" "E:\WSL\Docker\Data\docker-data.tar" --version 2
가져오기가 진행 중입니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
작업을 완료했습니다.

② WSL 상태 확인

PS E:\> wsl --list -v
  NAME                   STATE           VERSION
* Ubuntu_20.04.6_LTS     Stopped         2
  docker-desktop         Stopped         2
  AmazonLinux2           Stopped         2
  RockyLinux9            Stopped         2
  docker-desktop-data    Stopped         2

③ Docker Desktop 데이터 경로 확인

- 등록이 완료되면 docker-data.tar 파일은 삭제하여도 됩니다.

(6) Docker Desktop 실행

 

 

출처 : https://blog.naver.com/islove8587/223472881556

728x90
반응형

+ Recent posts