#keywords 공개프로젝트,docker,container,ubuntu,12.04,14.04,16.04,18.04,smp86xx,kvm,virtual,machine,libvirt,LTS,sigmadesigns,smp86xx,chipset,development,environment,mips,sourcery,mentor,mips-4.3 #title Docker 개발환경 - Ubuntu 개발환경 [wiki:Home 대문] / [wiki:CategoryOpenProject 공개프로젝트], [wiki:CategoryInstall 설치 및 구축] / [wiki:hwport/ubuntu Docker 개발환경 - Ubuntu 개발환경] ---- == [wiki:hwport/ubuntu Docker 개발환경 - Ubuntu 개발환경] == [[TableOfContents]] === 개요 === 본 프로젝트는 Ubuntu 기반에서의 기초 개발환경을 제공하는 Docker image 를 목표로 합니다. * Docker hub 홈페이지 : '''[^https://hub.docker.com/r/hwport/ubuntu/]''' * source repository : [^https://github.com/minzkn/ubuntu/] {{{#!plain # git clone https://github.com/minzkn/ubuntu.git hwport-ubuntu # cd hwport-ubuntu # git checkout # ./build-docker-image.sh }}} * Ubuntu 12.04, 14.04, 16.04, 18.04, 20.04, ... LTS 기반 (FROM ubuntu:) * 기본적으로는 upstart / systemd 또는 sshd 환경으로 실행됩니다. * [^https://www.synology.com/ Synology NAS] 의 Docker 기능을 통한 실행화면 [[attachment:synology-docker-image-view.jpg]] === image 설치방법 === * Docker hub pull name : "hwport/ubuntu:" {{{#!plain # docker pull hwport/ubuntu: : Pulling from hwport/ubuntu ... Status: Downloaded newer image for hwport/ubuntu: # docker images REPOSITORY TAG IMAGE ID CREATED SIZE hwport/ubuntu ... }}} * "" : ubuntu 배포판 및 용도에 따른 tag 이름입니다. ([^https://hub.docker.com/r/hwport/ubuntu/tags]) * "latest" : Ubuntu 기반의 개발환경을 지칭하는 master tag/branch 이름 (현재 만들고 있는 개발환경) * "20.04" : Ubuntu 20.04 LTS 기반의 개발환경을 지칭하는 tag 이름 * "20.04-systemd" : Ubuntu 20.04 LTS 기반의 systemd 기준 기초 tag 이름 * "18.04" : Ubuntu 18.04 LTS 기반의 개발환경을 지칭하는 tag 이름 * "16.04" : Ubuntu 16.04 LTS 기반의 개발환경을 지칭하는 tag 이름 * "14.04" : Ubuntu 14.04 LTS 기반의 개발환경을 지칭하는 tag 이름 * "12.04" : Ubuntu 12.04 LTS 기반의 개발환경을 지칭하는 tag 이름 * "www" : apache + php 웹 서버 기본 구동 환경을 지칭하는 tag 이름 * 현재 보고 계신 이 사이트는 이 이미지를 사용하여 구축한 것입니다. * "kvm" : KVM+QEMU (libvirt) 환경을 지칭하는 tag 이름 [[attachment:kvm-docker-image-view.jpg]] * "strongswan" : strongSwan을 이용한 IPSecVPN 환경 tag 이름 * "smp86xx" : Ubuntu 12.04 LTS 기반의 Sigmadesigns의 smp86xx chipset 개발환경을 지칭하는 tag 이름 === container 구동(run) 및 초기 설정방법 === 보다 자세한 구동 방법은 위에 명시한 github source repository 에서 clone 받으셔서 docker-compose 설정을 참고하시면 좀더 자세한 구동을 이해하실 수 있습니다. * container 구동(run) {{{#!plain # docker run -d -h "" --name "" -p :22 [--privileged] [-v ":"] "hwport/ubuntu:" ... # docker container ls --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES hwport/ubuntu: "/usr/sbin/sshd -D" 0.0.0.0:->22/tcp ... }}} * {{{""}}} : container 내에서의 hostname을 의미합니다. * {{{""}}} : container 의 이름입니다. * {{{""}}} : container 실행 호스트(외부)로의 SSH 접속 포트를 지정합니다. * {{{"--privilieged" 옵션}}} : container 내에서 권한이 필요한 실행을 해야 하는 경우 필요합니다. * {{{-v ":"}}} : container 실행환경의 directory(local-volume-path)를 container 내부의 directory(container-volume-path)에 투영(공유)하고자 하는 경우 사용할 수 있는 옵션입니다. * {{{}}} : container 구동(run)시 자동으로 생성되는 식별자입니다. "" 가 지정되지 않아도 이것으로 제어가능합니다. * container 내에 계정 추가 {{{#!plain # docker exec -i -t /bin/bash root@:/# useradd -c "" -d "/home/" -g users -G users,adm,sudo -m -s /bin/bash root@:/# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@:/# exit }}} * {{{}}} : container 환경에서 사용하고자 하는 계정이름입니다. SSH 접속시 반드시 필요합니다. * {{{""}}} : 계정에 대한 간단한 설명등을 의미합니다. * {{{}}} : 추가한 사용자 계정의 암호를 입력합니다. === container SSH 접속 방법 === * 기본적으로 container 에 SSH를 기본으로 접속하도록 구성되므로 다음과 같이 SSH 접속하실 수 있습니다. {{{#!plain # ssh -o port= @localhost The authenticity of host '[localhost]: ([::1]:)' can't be established. ECDSA key fingerprint is SHA256:<...>. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[localhost]:' (ECDSA) to the list of known hosts. @localhost's password: @:~$ }}} * localhost : 이 부분은 docker 실행환경의 IP 주소로 대체하여 접속하시면 원격에서 접속하실 수 있습니다. === 참고자료 === * '''[wiki:UbuntuVirtualMachineServerInstall 우분투(Ubuntu) 가상머신(Virtual Machine) 서버 환경 구축]''' * [wiki:hwport/sigmadesigns Docker 개발환경 - Sigmadesigns chipset 개발환경] * [^http://pyrasis.com/docker.html 이재홍님의 Docker 원고] * [[ISBN(9788966188383,K,noimg)]] * Docker 의 Network 구조에 대한 이해를 위한 내용 * [^http://bluese05.tistory.com/15 docker0와 container network 구조] * [^http://bluese05.tistory.com/38 container network 방식 4가지] * [^http://bluese05.tistory.com/53 container 외부 통신 구조] * [^http://bluese05.tistory.com/54 container link 구조] * Docker image를 빌드하기 위한 Dockerfile 작성 예 * https://hub.docker.com/r/fgrehm/vagrant-ubuntu/~/dockerfile/ * http://label-schema.org/rc1/ * https://hub.docker.com/_/ubuntu-upstart/ * 시작하세요! 도커/쿠버네티스 - 위키북스 * [[ISBN(9791158391829,K,noimg)]]