#keywords docker, container [[TableOfContents]] == Install & Service Start == https://www.docker.com/get-started == ìžì£¼ 쓰는 ëª…ë ¹ì–´ == === search === [https://registry.hub.docker.com/ Docker Hub]를 통해 ì´ë¯¸ì§€ë¥¼ 검색 {{{#!code $ docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 12545 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 254 [OK] ... }}} === pull === ì €ìž¥ì†Œì—ì„œ ì´ë¯¸ì§€ ê°€ì ¸ì˜¤ê¸° {{{#!code sudo docker pull ubuntu:latest }}} yhyacinth/ubuntu 처럼 / ì•žì— ì‚¬ìš©ìžëª…ì´ ìžˆìœ¼ë©´ ê·¸ 사용ìžê°€ 올린 ì´ë¯¸ì§€ë¥¼ ë°›ìŒ. ê³µì‹ ì´ë¯¸ì§€ëŠ” 사용ìžëª…ì´ ë¶™ì§€ ì•ŠìŒ. === ls === {{{ $ docker images }}} ë˜ëŠ” {{{ $ docker image ls }}} ì´ë¯¸ì§€ ëª©ë¡ í™•ì¸ === run === ì´ë¯¸ì§€ë¥¼ 컨테ì´ë„ˆë¡œ ìƒì„±í•œ ë’¤ 컨테ì´ë„ˆ 실행 {{{#!code $ docker run -i -t --name hello ubuntu /bin/bash }}} === ps === ëª¨ë“ ì»¨í…Œì´ë„ˆ ëª©ë¡ ì¶œë ¥ {{{#!code $ docker ps -a }}} === start === ì •ì§€í•œ 컨테ì´ë„ˆ 실행 {{{#!code $ docker start <컨테ì´ë„ˆ ì´ë¦„> }}} === exec === ì´ë¯¸ ì‹¤í–‰ëœ ì»¨í…Œì´ë„ˆ ì•ˆì˜ ëª…ë ¹ì„ ì‹¤í–‰ 예) /bin/bash ë¡œ 실행ë˜ì–´ ìžˆì„ ë•Œ ëª…ë ¹ì–´ 실행 {{{#!code $ docker exec <컨테ì´ë„ˆ ì´ë¦„> echo "Hello World" Hello World }}} === attach === 시작한 컨테ì´ë„ˆì— ì ‘ì† {{{#!code $ docker attach <컨테ì´ë„ˆ ì´ë¦„> }}} === stop === 컨테ì´ë„ˆ ì •ì§€ {{{#!code $ docker stop <컨테ì´ë„ˆ ì´ë¦„> }}} === restart === 컨테ì´ë„ˆ 재시작 {{{#!code $ docker restart <컨테ì´ë„ˆ ì´ë¦„> }}} === rm === ìƒì„±ëœ 컨테ì´ë„ˆ ì‚ì œ {{{#!code $ docker rm <컨테ì´ë„ˆ ì´ë¦„> }}} === rmi === ì´ë¯¸ì§€ ì‚ì œ {{{ $ docker rmi <컨테ì´ë„ˆ ì´ë¦„>:latest }}} == Quick Start == === go alpine 빌드&Hub ë°°í¬ === ["/go alpine 빌드&Hub ë°°í¬"] === Docker Build === {{{ $ docker build -t sample-app . }}} === Docker Hub push === 1) tag {{{ docker tag <ì´ë¯¸ì§€ ì´ë¦„:태그> <hub ê³„ì • ì´ë¦„>/<hub ë ˆíŒŒì§€í† ë¦¬ ì´ë¦„:태그> 예) $ docker tag sample-app:latest yhyacinth/sample-app:latest }}} *) 로컬 ì´ë¯¸ì§€ í™•ì¸ {{{ $ docker images }}} 2) Docker Hubì— ì´ë¯¸ì§€ë¥¼ push {{{ $ docker push yhyacinth/sample-app:latest }}} *) Docker Hub ë¡œê·¸ì¸ {{{ $ docker login }}} === Docker Hub pull === {{{ $ docker pull yhyacinth/dev-web }}} === Docker image run === {{{ docker run -p <í¬íŠ¸>:<í¬íŠ¸>/<í”„ë¡œí† ì½œ(ìƒëžµì‹œtcp)> <IMAGE ID> 예) $ docker run -p 3000:3000 24e776178046 $ docker run -p 3001:3001/udp 24e776178046 }}} docker run -p 옵션: 호스트와 í´ë¼ì´ì–¸íŠ¸ í¬íŠ¸ë¥¼ 매핑 docker run -d 옵션: 백그ë¼ìš´ë“œ 모드로 실행 === Docker image stop === 1) docker ps ë¡œ NAMES(실행 ì¤‘ì¸ ì»¨í…Œì´ë„ˆ ì´ë¦„) í™•ì¸ 2) stop {{{ docker stop <컨테ì´ë„ˆ ì´ë¦„> 예) docker stop adoring_meninsky }}} == Tips == === Windows Server Coreì—ì„œ IIS 사용 === (FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 ì„ ì‚¬ìš©í•˜ì§€ ì•Šì„ ê²½ìš°) Dockerfileì— ì¶”ê°€ {{{ # escape=` FROM mcr.microsoft.com/windows/servercore:ltsc2019 RUN powershell -Command ` Add-WindowsFeature Web-Server; ` Invoke-WebRequest -UseBasicParsing -Uri "https://dotnetbinaries.blob.core.windows.net/servicemonitor/2.0.1.6/ServiceMonitor.exe" -OutFile "C:\ServiceMonitor.exe" WORKDIR /inetpub/wwwroot EXPOSE 80 ENTRYPOINT ["C:\\ServiceMonitor.exe", "w3svc"] }}} 첫 ì¤„ì˜ [[code(# escape=,)]]는 Dockerfileì—ì„œ powershell ì¸ìžë¥¼ `으로 여러 ì¤„ì„ í‘œí˜„í•˜ê¸° 위해 ì“°ì¼ ë¿ì´ë©° Docker ì„¤ì •ê³¼ 관계가 없다. === Alpineì—ì„œ bash 사용 === Dockerfileì— ì¶”ê°€ {{{ RUN apk update RUN apk add --no-cache bash }}} === tensorflow 사용 === [[code(docker run -p 8888:8888 -p 6006:6006 -it tensorflow/tensorflow)]] === get bash into a running container in background mode === 1. 실행 ì¤‘ì¸ container id í™•ì¸ [[code(docker ps)]] 2. /bin/bash 실행 [[code(docker exec -it 665b4a1e17b6 /bin/bash)]] === mount directory === ==== for windows ==== 1. Tray ì•„ì´ì½˜ Settings 2. Shared Drive íƒ > Shared C: ì²´í¬ 3. Apply ì ìš© 후 run í• ë•Œ ë‹¤ìŒ ì¶”ê°€ [[code(-v //c/my_folder:/home/test_container)]] [[code(-v //c/Users/user/my_folder:/home/test_container)]] 여러 개를 mount í• ë•ŒëŠ” ë””ë ‰í„°ë¦¬ë§ˆë‹¤ -v를 붙여준다. === docker VM Disk(disk.vmdk) 경로 변경 === (for mac) 1. stop docker 2. vi /etc/default/docker 편집 경로 ìˆ˜ì • [[code(DOCKER_OPTS="-g /docker/var/lib/docker")]] 3. start docker (for windows) 1. %PROGRAMFILES%\Docker Toolbox\start.sh 편집 2. docker-machine.exe 실행 ì‹œ -s ì˜µì…˜ì„ ì‚¬ìš©í•˜ë„ë¡ ìˆ˜ì •í•œë‹¤. ìˆ˜ì • ì „ [[code(DOCKER_MACHINE=./docker-machine.exe)]] ìˆ˜ì • 후 [[code(DOCKER_MACHINE_FILE=./docker-machine.exe)]] [[code(DOCKER_MACHINE="./docker-machine.exe -s D:/docker/")]] ìˆ˜ì • ì „ [[code(if [ ! -f "${DOCKER_MACHINE}" ]; then)]] ìˆ˜ì • 후 [[code(if [ ! -f "${DOCKER_MACHINE_FILE}" ]; then)]] ìˆ˜ì • ì „ [[code(VM_STATUS="$(${DOCKER_MACHINE} status ${VM} 2>&1)")]] ìˆ˜ì • 후 [[code(VM_STATUS="$(${DOCKER_MACHINE_FILE} status ${VM} 2>&1)")]] 3. [[code(%USERPROFILE%\.docker\machine)]] í´ë”ë“¤ì„ ì„¤ì • 변경한 위치로 복사 4. docker machine 재시작 [[code(cmd> docker-machine stop)]] [[code(cmd> start.sh)]] (...mac, windows 공통으로 경로 ì„¤ì • 바꾸는 것보다 그냥 ì‹¬ë³¼ë¦ ë§í¬ ë§Œë“¤ì–´ë„ ë¬´ë°©í•˜ê³ ê·¸ íŽ¸ì´ ë” ì‰¬ìš¸ 수 있다.) ---- CategoryDev