backend/docker 21

docker - swarm 기초 사용법 및 개념

containers everywhere = New problemshow do we automate container lifecycle?how can we easily scale uot/in/up/down?re-created if failblue/green deploy?Swarm mode: built-in orchestrationswarm: 2016년에 나옴.server clustering solutionnot related to swarm classic for pre-1.12기본 개념Manager & Worker 개념Manager: Raft consensus group (role) - worker에 manager role이 부여된 것…new docker service 커맨드: 몇개를 run 할건지 등을 ..

backend/docker 2017.12.22

docker compose 기초 사용법

Docker compose 기초컨테이너들 간의 관계 설정easy-to-read 파일로 세팅해서 container를 run하기 위해서one-liner startup을 위해서2 가지로 구성YAML: container, network, volume에 관련한 옵션CLI tools (docker-compose)docker-compose.ymlYAML 포멧 버전: 1, 2, 2.1, 3, 3.1 - first linedocker-compose 코멘드로 쉽게 사용기본 포멧version: '3.1' service: servicename: image: # optional command: # optional environment: # optional volumes # optional servicename2: # if ha..

backend/docker 2017.12.21

Docker hub에 만들어진 image 올리기

docker hub에 이미지 올리는 방법 정리1. image에 tag 부여하기# 잘 모르겠을 경우 docker image tag --help로 help command 보기 # $docker image tag image_name DOCKER_HUB_USERNAME/image_name:version # 예시 - django_test 이미지에 태그달기 # latest일 경우에는 생략 가능 $docker image tag django_test bartkim0426/django_test:latest 2. docker hub login$docker login # 이후 나온 command line에 username, password 입력 Login with your Docker ID to push and pull i..

backend/docker 2017.12.21

docker lifetime: volume & bind mount

Container Lifetime Container: immutable infrastructure - 컨테이너는 그 자체로 변하지 않는다: 만약 서비스가 업그레이드되거나 수정되면, 새로운 컨테이너를 만들면 됨! “Only re-deploy, never change”db나 unique data들은? 이상적으로는 docker는 이런것들은 가지고 있으면 안됨. => “Seperation of concerns”영구저장이 필요한 데이터들은 컨테이너 내부가 아니라 외부 데이터 저장소를 이용해서 저장해야함.“persistent data” => 2가지 솔루션- “Volumes and Bind Mounts”Volumns: make special location outside of container UFS(Union Fi..

backend/docker 2017.12.19

Install docker completion in bash&zsh

bash에서 docker completion 사용하기brew를 사용해서 설치해주면 된다.$ brew install bash-completion $ brew tap homebrew/completions .bash_profile에 다음을 추가if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi 다음 명령어 실행ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion /usr/local/etc/bash_completion.d/docker ln -s /Applications/Docker.app/Contents/Reso..

backend/docker 2017.12.18

build node image in docker

udemy 강의 예시 (docker로 node 서버 image 만들어서 띄우기)배포할 node가 이미 완성되어 있다고 가정하고 진행Dockerfile 만들기# Node official image 가져오기 (6-alpine 버전) FROM node:6-alpine # 3000port listen EXPOSE 3000 # package manager로 tini 설치 RUN apk add --update tini # 'mkdir -p /usr/src/app' 코맨드 RUN mkdir -p /usr/src/app # - Node uses a "package manager", so it needs to copy in package.json file # package manager 사용을 위한 'package.js..

backend/docker 2017.12.18

Docker - django 2.0 runserver 띄워보기

요즘 docker의 매력에 푹 빠졌다. 아직은 container, image 등 기초적인 것들을 공부하고 있지만 기본적인 dockerfile로 django runserver을 docker에서 구현해보았다.추후 실제 배포 단계에서도 nginx, uwsgi나 gunicorn을 활용해서 docker로 배포한다면 정말 좋을 것 같다. (많이 늦은 감이 있지만.. 늦은게 아예 안 하는 것보다는 낫겠지?)django project 구성이건 본인의 입맛에 맞게 project를 구성하면 된다. django-admin startproject를 해도 좋고, 자신만의 project-base를 만들어도 좋다. 어쨌건 django 2.0 공식문서를 토대로 local 환경에서 runserver가 구동되게만 세팅해 놓는다.Dock..

backend/docker 2017.12.18

docker images 기본 명령어 및 기초설명

Docker imageDocker hub 사용하기docker hub에 가입하면, 원하는 이미지를 검색할 수 있다. nginx로 검색하면 무려 20000개가 넘는 repository들이 있다. 대개는 official 이미지들을 사용할 수 있다. 시작할 때는 official 이미지로 시작해서 원하는 부분을 customizing 하여 자신의 image를 만드는게 좋음official docker image를 눌러서 들어가보면 stable하게 관리되고 있는 버전들과 다양한 설명들을 볼 수 있다.downloading, using images$docker image 로 docker image 관련된 명령어를 실행 가능하다. docker image --help로 가능한 명령어들을 확인 가능# 현재 있는 image들 보..

backend/docker 2017.12.16

Docker networks

Container를 실행시키면 각각의 container가 bridge라는 private virtual network에 연결됨각각의 virtual network는 NAT firewall에 라우팅모든 컨테이너는 -p 없이 서로 접속 가능docker container의 port 확인하기$docker container port docker container inspect –formatinspect --format으로 현재 container의 ip를 확인 가능docker container inspect --format '' CLI Management for docker networkdocker network ls현재 만들어진 container의 network를 볼 수 있음$docker network ls NETW..

backend/docker 2017.12.15

Docker basic commands - Container

Basic commands버전 확인 및 information 확인# check docker versions docker verson # config value 확인 docker info 사용 가능한 docker commands 확인# check docker commands docker 결과가 Management commands와 Commands로 나뉨docker management command: 많은 command를 관리하기 위해서 새로운 format(management commands)를 제공docker (options)처럼 사용 가능예전 방식 (docker (optinos))도 여전히 사용 가능하다.ContainerImage vs Containerimage? application we want to..

backend/docker 2017.12.14