#keywords 공개프로젝트,docker,container,ubuntu,12.04,LTS,sigmadesigns,smp86xx,chipset,development,environment,mips,sourcery,mentor,mips-4.3 #title Docker 개발환경 - Sigmadesigns chipset 개발환경 [wiki:Home 대문] / [wiki:CategoryOpenProject 공개프로젝트], [wiki:CategoryInstall 설치 및 구축] / [wiki:hwport/sigmadesigns Docker 개발환경 - Sigmadesigns chipset 개발환경] ---- == [wiki:hwport/sigmadesigns Docker 개발환경 - Sigmadesigns chipset 개발환경] == [[TableOfContents]] === 개요 === 본 프로젝트는 Sigmadesigns 사의 smp86xx 계열 chipset 의 개발환경을 기준으로 하는 Docker image 를 목표로 합니다. * Docker hub 홈페이지 : '''[^https://hub.docker.com/r/hwport/sigmadesigns/]''' * source repository : [^https://github.com/minzkn/ubuntu/tree/smp86xx] {{{#!plain # git clone https://github.com/minzkn/ubuntu.git hwport-ubuntu # cd hwport-ubuntu # git checkout smp86xx-base # ./build-docker-image.sh }}} * Ubuntu 12.04 LTS 기반 (FROM hwport/ubuntu:12.04, FROM ubuntu:12.04) * 기본적으로는 upstart 환경으로 init process 가 구동되고 sshd가 함께 실행됩니다. * mentor의 mips-4.3 toolchain 포함 (mips 32bits cross compiler) : https://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu/mips-4.3-51-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 * image/container 내에 "/opt/mips-4.3/" 경로에 설치되어 있습니다. 다음과 같은 환경변수 설정을 기준으로 구성합니다. {{{#!enscript sh export SMP86XX_TOOLCHAIN_PATH="/opt/mips-4.3" export PATH="/opt/mips-4.3/bin:${PATH}" }}} === image 설치방법 === * Docker hub pull name : "hwport/sigmadesigns:smp86xx" 또는 "hwport/ubuntu:smp86xx" {{{#!plain # docker pull hwport/sigmadesigns:smp86xx smp86xx: Pulling from hwport/sigmadesigns ... Status: Downloaded newer image for hwport/sigmadesigns:smp86xx # docker images REPOSITORY TAG IMAGE ID CREATED SIZE hwport/sigmadesigns smp86xx ... }}} === container 구동(run) 및 초기 설정방법 === * container 구동(run) {{{#!plain # docker run -d -h "" --name "" -p :22 [--privileged] [-v ":"] "hwport/sigmadesigns:smp86xx" ... # docker container ls --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES hwport/sigmadesigns:smp86xx "/sbin/init" 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/ubuntu Docker 개발환경 - Ubuntu 개발환경] * [^http://pyrasis.com/docker.html 이재홍님의 Docker 원고] * 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/