이전에 만들었던 docker의 환경을 setting하는 시간을 가져보도록 하겠습니다.
우선 만들어 놓은 container를 update 시켜줍니다.
$ apt-get update
환경을 setting 하기 전에 제일 먼저 해줘야 할것은 locale 설정입니다. locale에 대한 자세한 설명은 아래 포스팅을 참고하시기 바랍니다.
현재 locale을 보면 아무것도 setting을 안해놓은 상태기 때문에 보이는 것과 같이 텅 비어있습니다.
이 비어있는 locale을 원하는 환경에 맞게 setting 해줍니다.
$ apt-get install sudo locales vim
$ locale-gen en_US.UTF-8
Docker container는 local pc와는 별개로 움직이기 때문에 필요한 package들을 따로 받아줘야 합니다.
저의 경우, 해당 docker를 yocto를 학습하는데 사용할 예정이기 때문에 yocto를 사용하는데 필요한 패키지를 다운받도록 하겠습니다.
해당 command는 다음과 같습니다.
$ apt-get install -y \
g++ gawk wget git git-core diffstat unzip texinfo \
gcc-multilib build-essential chrpath socat cpio libncurses5-dev \
python3 python3-pip python3-pexpect xz-utils debianutils \
iputils-ping python3-git python3-jinja2 libegl1-mesa \
libsdl1.2-dev pylint3 make xsltproc docbook-utils locales \
fop dblatex xmlto xutils-dev autoconf automake libtool \
libglib2.0-dev libarchive-dev python-git live-build \
debootstrap qemu-user-static python-pip \
xterm python3-subunit mesa-common-dev zstd liblz4-tool \
lib32z1 lib32stdc++6 bc sudo tmux python-crypto
20분정도 기다린 결과, 인스톨이 전부 완료되었습니다.
자, 이제 지금까지 세팅한 내용들을 다시 이미지화하도록 하겠습니다.
명령어는 다음과 같습니다.
//docker commit <container name> <new docker image name>:<version>
$ docker commit ubuntu jaehyeon
이번에 run하는 docker container에는 restart always와 -v 옵션을 추가합니다.
restart 옵션을 줄 경우 docker desktop을 실행시킬 때 마다 항상 container를 같이 띄울 수 있습니다.
v 옵션을 사용하는 이유는 Local과 volume을 공유하기 위해서입니다.
docker container가 volume을 사용하려면 volume을 컨테이너에 마운트 해주는 과정을 진행합니다.
-v 옵션을 통해 이 과정을 진행하는데 :을 구분자로 해서 앞에는 마운트할 volume, 뒤에는 container 내의 경로를 적어주면 됩니다.
// docker run --restart always --name <container name> - v <local location>:<Docker location> -dt <image name>
$ docker run --restart always --name jaehyeon -v /home/jaehyeon/work:/home/jaehyeon/work -dt jaehyeon
이제 run한 docker container를 exec 합니다.
$ docker exec -it jaehyeon /bin/bash
보이는 것과 같이 volume이 docker에 잘 마운트 되어 있는 것을 볼 수 있습니다.