일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kubernetes
- Shell script
- nginx-media-server
- Java
- wireshark
- android studio
- Python
- kubectl
- 행정구역분류
- Flutter
- dart
- ffmpeg
- Sysinternals
- aws cli
- VSCode
- deployment
- aws
- docker
- Pod
- Windows10
- spring cloud config
- golang
- RTMP
- macos
- service
- namespace
- Android
- ebpf
- HLS
- configmap
- Today
- Total
woonizzooni
Docker Toolbox 설치, 메모리 확장, 디스크 확장, timezone변경 본문
Docker Toolbox 기본 설치 과정에서 Docker VM의
- 기본 설정 메모리 크기 확장
- 디스크 확장, 공유 폴더 추가 병행
- Timezone변경
정도로 진행한다.
** update :: 교차점 생성, MACHINE_STORAGE_PATH 설정은
Kitematic 사용하지 않을 경우에만 하자.
docker vm ssh접속으로 동작에는 문제 없지만 (= vmware에 linux설치후 그 위에 동작하는 docker)
host(windowns)에서 docker-machine 명령등에 직접 연결이 안된다.
ex) 에러 메시지 종류
Could not determine IP from docker-machine.
command exit status 255
Error checking TLS connection: Host is not running
등...
windows의 OpenSSH와 docker-toolbox의 인증서 위치나 권한 뭐 그런 것들 때문같은데,
괜히 시간 낭비하지 말자. 그냥 pc검증 환경일 뿐이니...
"
1. 설치 디렉토리 생성 & 링크 (optonal)
- D드라이브에 Docker 디렉토리 생성 (D:\Docker) <-- 본인이 희망하는.
- 혹시 모를 일을 대비해서 /Users/MY_NAME/.docker를 D:\Docker로 교차점 생성
C:\Users\MY_NAME> mklink /J .docker "D:\Docker"
.docker <<===>> D:\Docker에 대한 교차점을 만들었습니다.
2. 환경변수 설정 (& 재시작) (optional)
- Docker 저장소 위치 변경
3. Docker Toolbox 다운로드 & 설치
- 다운로드 : https://download.docker.com/win/stable/DockerToolbox.exe
- 설치 진행 : 진행 과정 중 기본 체크 박스 상태 그대로 진행, 설치 완료 후 재시작 불필요
https://docs.docker.com/toolbox/toolbox_install_windows/
- 3개의 바로가기 아이콘 생성됨
1) Oracle VM VirtualBox : "C:\Program Files\Oracle\VirtualBox\VirtualBox.exe" deafult VM이 생성되어 있는 상태
2) Kitematic (Alpha) : "C:\Program Files\Docker Toolbox\kitematic\Kitematic.exe"
3) Docker Quickstart Terminal : "C:\Program Files\Git\bin\bash.exe" --login -i "C:\Program Files\Docker Toolbox\start.sh"
4. Docker VM 실행 & 상태 확인
- Docker Quickstart Terminal 바로가기 실행
- IP 확인 (기본 설정대로 라면 NAT구성으로 192.168.99.100) : 위 그림 IP정보 참고
5. Oracle VM VirtualBox : Docker VM이미지 메모리 확장, 공유 폴더 추가
5-0. VM중지 = 'Docker Quickstart Terminal'에서 아래 명령 실행
$ docker-machine stop
5-1. Oracle VM VirtualBox실행 & default 우측 클릭 > 닫기 전원 끄기
5-2. default > 설정 : 기본메모리를 1024MB에서 4096MB로 변경 (컨테이너의 Out-Of-Memory를 덜 보려면...)
5-3. 공유폴더 추가
- D:\Docker\data 디렉토리 생성
- 이 폴더를 공유 폴더로 추가 & 자동마운트 설정
5-4. 디스크 추가
- 저장소 > 새 디스크 만들기 > VMDK 선택 > 동적 할당 > data_disk이름 & 100GB 설정 > 만들기
(경로 : D:\Docker\machines\default\default\data_disk.vmdk)
- 'Docker Quickstart Terminal' 에서 docker-machine start
- Docker쉘 접속 후
1) fdisk /dev/sdb : 파티셔닝
2) mkfs.ext4 /dev/sdb1 : ext4 포맷
3) mount 해보기
docker@default:~$ sudo -i
root@default:~# fdisk -l <-----------
....
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors <-----------
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@default:~# fdisk /dev/sdb <---------
...
Command (m for help): m <--------
Command (m for help): g <-------- Linux FileSystem
Command (m for help): n <-------- 파티션 생성
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p <-----------
Partition number (1-4, default 1):
First sector (2048-209715199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
Command (m for help): p
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 54EDF7CB-5770-47D4-9DF6-0F4CE1F48054
Device Start End Sectors Size Type
/dev/sdb1 2048 209715166 209713119 100G Linux filesystem
Command (m for help): w <--------------
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root@default:~# fdisk -l <--------------
...
Device Start End Sectors Size Type
/dev/sdb1 2048 209715166 209713119 100G Linux filesystem <--------------
root@default:~# mkfs.ext4 /dev/sdb1 <--------------
...
Writing superblocks and filesystem accounting information: done
root@default:~# mkdir -p /mnt/sdb1
root@default:~# mount /dev/sdb1 /mnt/sdb1 <-----------
root@default:~# df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 3.5G 229.6M 3.2G 6% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 17.8G 46.5M 16.9G 0% /mnt/sda1
cgroup 1.9G 0 1.9G 0% /sys/fs/cgroup
/c/Users 476.2G 189.5G 286.7G 40% /c/Users
/data 3.6T 1.4T 2.2T 39% /data
/dev/sda1 17.8G 46.5M 16.9G 0% /mnt/sda1/var/lib/docker
/dev/sdb1 97.9G 59.6M 92.9G 0% /mnt/sdb1 <----------
- 자동 마운트 설정 : 아래 경로에 bootlocal.sh 파일 생성(실행 권한부여) 후 mount명령 추가
(이 방법외에 다른 방법 찾기 귀찮아서, 혹시 아는 분은 댓글로...)
root@default:~# cd /var/lib/boot2docker
root@default:/var/lib/boot2docker# vi bootlocal.sh
#!/bin/sh
mount /dev/sdb1 /mnt/sdb1
:wq (저장)
root@default:/var/lib/boot2docker# chmod u+x bootlocal.sh
- 'Docker Quickstart Terminal' 에서 docker-machine restart
- docker vm에 쉘 접속 후 확인 : 메모리 크기 등
6. Timezone변경
- 현재 시간 확인 : PC의 현재 시간과 동일하면 끝, 아래와 같이 아니라면
docker@default:~$ date
Mon Jun 17 21:50:01 UTC 2019 <--- 엉뚱한 시간이 나온다. (9시간 전?)
- 다음과 같이 진행 후 docker-machine restart
docker@default:~$ sudo -i
root@default:~# cd /var/lib/boot2docker
root@default:/var/lib/boot2docker# tce-fetch.sh tzdata.tcz
root@default:/var/lib/boot2docker# mkdir ext
root@default:/var/lib/boot2docker# mount tzdata.tcz ext -t squashfs -o loop,ro,bs=4096
root@default:/var/lib/boot2docker# cp ext/usr/local/share/zoneinfo/Asia/Seoul ./Asia-Seoul.tz
root@default:/var/lib/boot2docker# umount ext
root@default:/var/lib/boot2docker# rm -rf ext tzdata.tcz
root@default:/var/lib/boot2docker# vi bootlocal.sh
#!/bin/sh
mount /dev/sdb1 /mnt/sdb1
cp /var/lib/boot2docker/Asia-Seoul.tz /etc/localtime
:wq (저장)
root@default:/var/lib/boot2docker# chmod u+x bootlocal.sh
((((( 재시작 후 접속 )))))
docker@default:~$ date
Tue Jun 18 07:04:21 KST 2019 <-- PC시간과 동일
(참고 : https://github.com/boot2docker/boot2docker/issues/476)
[기타]
- container 이미지 저장 위치 :
$ docker info
Containers: 3
...
Docker Root Dir: /mnt/sda1/var/lib/docker <------------
...
Product License: Community Engine
$ sudo i
# cd /mnt/sda1/var/lib/docker
# find . -name mysql | cut -f 1,2,3 -d "/" | uniq | xargs du -h -d 0
40.0K ./overlay2/331e15e384ea042923fbc7d933359fa89718cc38215d0056ab47bfbba2e445f2
431.8M ./overlay2/b7f24200745390db507cca92e2d6b32778d77a71f58d8d776dd04be46912b405
313.6M ./overlay2/00a4a9d710111c024838b47c3d1a1ce1457f2cd345e33748e21bac3c92364792
대충 /mnt/sd1/var/lib/docker/overlay쯤인가보네
참고 : https://stackoverflow.com/questions/19234831/where-are-docker-images-stored-on-the-host-machine
'Docker' 카테고리의 다른 글
Docker Container IP 확인, 네트워크 정보 조회 (2) | 2019.06.20 |
---|---|
Docker PostgreSQL, pgAdmin4, SonarQube설치 및 연동 (0) | 2019.06.19 |
Docker Sonatype Nexus 설치 (0) | 2019.06.18 |
Docker Jenkins Blue Ocean 설치 (0) | 2019.06.18 |
Docker mysql 설치, DB생성, 테이블생성 예시 (0) | 2019.06.17 |