MacOS VirtualBox Ubntu에 Docker 환경 구축

MacOS VirtualBox Ubntu에 Docker 환경 구축



아래 절차에 따라 작업을 수행합니다.
1. MacOS의 VirtualBox에 게스트 OS로 Ubntu 설치
2. 게스트 OS Ubntu에 Docker 환경 구축

MacOS VirtualBox에 Ubntu를 게스트 OS로 설치



VirtualBox 얻기



VirtualBox 이진
htps //w w.ゔぃr 짠 l보 x. 오 rg / uuki / Down ぉ ds

Mac의 경우 OS X Hosts를 클릭합니다.



우분투를 얻고 설치



우분투 데스크톱 18.04.4 LTS
htps : // jp. 어쩌면. 코 m / 도 w 응 아 d

Virtualbox 호스트 전용 네트워크 만들기



호스트 OS와 통신하기 위해 Virtualbox의 호스트 전용 네트워크를 만듭니다.
호스트 OS의 설정이 아니기 때문에 클릭하는 장소에 주의.


클릭만으로 설정 등은 자동으로 이루어집니다.
자동 입력되는 설정의 예 (환경에 따라 설정 내용이 바뀝니다, 기본값 그대로 OK, 수정 불필요):


DHCP의 설정도 마음대로 들어간다고 생각합니다.



Virtualbox 게스트 OS용 네트워크 만들기



이번에는 게스트 OS용 네트워크 설정입니다. 클릭할 위치에 주의.


네트워크의 어댑터 2에 할당 호스트 전용 어댑터를 선택합니다.
이름으로 방금 만든 호스트 전용 어댑터를 선택할 수 있어야합니다.


게스트 OS(Ubuntu)에서 인터넷 통신이 가능한지 확인



Firefox (웹 브라우저) 등으로 인터넷에 접속 가능하게 된 것을 확인하십시오.

게스트 OS(Ubuntu) 업데이트



업데이트를 수행합니다.
sudo apt update
sudo apt upgrade

Net-tools, ping 설치



IP 확인에 ifconfig, PING을 이용하고 싶으므로, 설치해 둡니다.
sudo apt-get install net-tools iputils-ping

ssh 설치



호스트 OS에서 게스트 OS로 작업 할 때 ssh를 사용하고 싶으므로 설치하십시오.
보안 대책 등은 각자 부탁드립니다.
sudo apt-get install ssh
systemctl start sshd

내 환경에서의 ssh 예 (당연히 IP, I / F 등은 각자의 환경에서 바뀝니다)



게스트 OS에 로그인하고 ssh가 실행 중인지 확인합니다.
tagucchan@tagvirtualbox01:~$ ps -ef | grep ssh
tagucch+  1752  1675  0 10:50 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
root      4945     1  0 10:55 ?        00:00:00 /usr/sbin/sshd -D
root      6000  4945  0 10:57 ?        00:00:00 sshd: tagucchan [priv]
tagucch+  6090  6000  0 10:58 ?        00:00:00 sshd: tagucchan@pts/1
tagucch+  6117  6091  0 11:00 pts/1    00:00:00 grep --color=auto ssh

ssh가 기동중이므로, 게스트 OS(Ubuntu)의 IP를 조사합니다.
tagucchan@tagvirtualbox01:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::3306:660:8dc9:8a3e  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e9:85:d9  txqueuelen 1000  (Ethernet)
        RX packets 19747  bytes 19014822 (19.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7266  bytes 488706 (488.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::ff08:5ca7:204b:8b9c  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:88:8e:37  txqueuelen 1000  (Ethernet)
        RX packets 83  bytes 12617 (12.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 119  bytes 16465 (16.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 254  bytes 20458 (20.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 254  bytes 20458 (20.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

호스트 OS의 IP도 확인하고, 통신 가능한 I/F는 위에서 2번째의 「enp0s8」, IP가 「192.168.56.101」이 됩니다.
할애하지만 호스트 OS와 게스트 OS에서 "공통 IP가 아닌 쪽 IP"로 ssh 할 수 있습니다.
자세한 설명은 Virtualbox 문서를 찾아 참조하십시오.

호스트 OS (MacOS) IP 확인
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::3306:660:8dc9:8a3e  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e9:85:d9  txqueuelen 1000  (Ethernet)
        RX packets 19768  bytes 19016712 (19.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7290  bytes 490675 (490.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::ff08:5ca7:204b:8b9c  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:88:8e:37  txqueuelen 1000  (Ethernet)
        RX packets 208  bytes 25051 (25.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 196  bytes 27251 (27.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 267  bytes 21659 (21.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 267  bytes 21659 (21.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Mac에서 ssh 해보십시오.
tagucchan@tagvirtualbox01:~$ ssh [email protected]
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
ECDSA key fingerprint is SHA256:rgLFPu10ZCNlOSnLROddIRtxfxYtqkzn38auX/c1rmk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 5.3.0-42-generic x86_64)

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


 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

11 個のパッケージがアップデート可能です。
0 個のアップデートはセキュリティアップデートです。

Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Tue Mar 24 10:58:01 2020 from 192.168.56.1
tagucchan@tagvirtualbox01:~$ 

게스트 OS 우분투에 Docker 환경 구축



공식 문서 docker docs "Install using the repository" 거리에서 작업합니다.

apt가 https를 통해 리포지토리를 사용할 수 있도록 허용



필요한 패키지를 설치.
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

Docker’s official GPG key 추가


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

키 지문(finger print)으로 올바른 키인지 확인



지문 (finger print) 확인
sudo apt-key fingerprint 0EBFCD88

다음이 표시되면 OK입니다.
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

출력 예:
tagucchan@tagvirtualbox01:~$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

리포지토리 추가 (여기에서는 x86_64 / amd64 용 stable )


sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

DOCKER ENGINE - COMMUNITY 설치



DOCKER ENGINE의 COMMUNITY(커뮤니티 에디션)를 설치합니다.

최신으로 업데이트합니다.
sudo apt-get update
sudo apt-get upgrade

DOCKER ENGINE - COMMUNITY 설치


sudo apt-get install docker-ce docker-ce-cli containerd.io

DOCKER ENGINE의 동작 확인



작동하는지 hello-world에서 확인하십시오.
sudo docker run hello-world

실행 예:
Hello from Docker!
This message shows that your installation appears to be working correctly.
의 표시가 나오면 OK입니다.
tagucchan@tagvirtualbox01:~$ sudo docker run hello-world
[sudo] password for tagucchan: 
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

tagucchan@tagvirtualbox01:~$ 

Docker 컨테이너 중지


tagucchan@tagvirtualbox01:~$ exit  # Ubuntuのshellから抜ける
tagucchan@tagvirtualbox01:~$ sudo docker ps # 実行中確認
tagucchan@tagvirtualbox01:~$ sudo docker stop hello-world # コンテナhello-worldを停止
tagucchan@tagvirtualbox01:~$ sudo docker ps -a # 停止確認

주의사항



root에서 docker를 계속 사용하는 것은 좋지 않습니다.
여기서는 귀여워하지만 sudo가 불필요하게 할 수있는 방법이 있습니다.
조사하고 대응해보십시오.

좋은 웹페이지 즐겨찾기