Docker introduction for the beginnersJuneyoung Oh1. Docker allows creating lightweight virtual environments called containers that package code and dependencies together. Containers are more portable than virtual machines.
2. Docker uses images to build containers. Images are immutable templates and containers are instances of images that can be run. The Dockerfile defines how to build images.
3. Common Docker commands include docker pull to download images, docker run to create and start containers, docker exec to run commands in running containers, and docker commit to save container changes as new images.
Introduction to Docker ComposeAjeet Singh RainaThis document introduces Docker Compose, which allows defining and running multi-container Docker applications. It discusses that Docker Compose uses a YAML file to configure and run multi-service Docker apps. The 3 steps are to define services in a Dockerfile, define the app configuration in a Compose file, and run the containers with a single command. It also covers topics like networking, environment variables, and installing Docker Compose. Hands-on labs are provided to learn Compose through examples like WordPress.
Docker Swarm for BeginnerShahzad MasudThis document provides an overview of Docker Swarm and how to set up and use a Docker Swarm cluster. It discusses key Swarm concepts, initializing a cluster, adding nodes, deploying services, rolling updates, draining nodes, failure scenarios, and the Raft consensus algorithm used for leader election in Swarm mode. The document walks through examples of creating a Swarm, adding nodes, deploying a service, inspecting and scaling services, rolling updates, and draining nodes. It also covers failure scenarios for nodes and managers and how the Swarm handles them.
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...SimplilearnThis presentation on Docker Container will help you understand what is Docker, the architecture of Docker, what is a Docker Container, how to create a Docker Container, benefits of Docker Container, basic commands of Containers and you will also see a demo on creating Docker Container. Docker is a very lightweight software container and containerization platform. Docker containers provide a way to run software in isolation. It is an open source platform that helps to package an application and its dependencies into a Docker container for the development and deployment of software and a Docker COntainer is a portable executable package which includes applications and their dependencies. With Docker Containers, applications can work efficiently in different computer environments.
Below DevOps tools are explained in this Docker Container presentation:
1. What is Docker?
2. The architecture of Docker?
3. What is a Docker Container?
4. How to create a Docker Container?
5. Benefits of Docker Containers
6. Basic commands of Containers
Simplilearn's DevOps Certification Training Course will prepare you for a career in DevOps, the fast-growing field that bridges the gap between software developers and operations. You’ll become an expert in the principles of continuous development and deployment, automation of configuration management, inter-team collaboration and IT service agility, using modern DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios. DevOps jobs are highly paid and in great demand, so start on your path today.
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis도커 무작정 따라하기
- 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커의 기본 개념부터 설치와 사용 방법까지 설명합니다.
더 자세한 내용은 가장 빨리 만나는 도커(Docker)를 참조해주세요~
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
DevOps with AnsibleSwapnil JainThis document provides an overview of DevOps with Swapnil Jain. It introduces Swapnil and his background, then covers an agenda on Ansible including an introduction, use cases, architecture, modules demo, playbook demo, Ansible Tower features, and Tower demo. Ansible is introduced as an open source configuration management and orchestration tool that can automate and standardize remote host configuration. Common use cases include provisioning, configuration management, application deployment, continuous delivery, security and compliance, and orchestration.
Docker introductionPhuc NguyenThe document introduces Docker, a container platform. It discusses how Docker addresses issues with deploying different PHP projects that have varying version requirements by allowing each project to run isolated in its own container with specified dependencies. It then covers key Docker concepts like images, containers, linking, exposing ports, volumes, and Dockerfiles. The document highlights advantages of Docker like enabling applications to run anywhere without compatibility issues and making deployment more efficient.
Docker introOleg ZDocker allows users to package applications with all their dependencies into standardized units called containers that can run on any Linux server. Containers are more lightweight than virtual machines because they share the host operating system and only require the additional libraries and binaries needed to run the application rather than a full guest operating system. Docker uses containers and an image format to deploy applications in a consistent manner across development, testing, and production. The document provides examples of how to define a Dockerfile to build an image, run containers from images using docker-compose, and common Docker commands.
Container Network Interface: Network Plugins for Kubernetes and beyondKubeAcademyWith the rise of modern containers comes new problems to solve – especially in networking. Numerous container SDN solutions have recently entered the market, each best suited for a particular environment. Combined with multiple container runtimes and orchestrators available today, there exists a need for a common layer to allow interoperability between them and the network solutions.
As different environments demand different networking solutions, multiple vendors and viewpoints look to a specification to help guide interoperability. Container Network Interface (CNI) is a specification started by CoreOS with the input from the wider open source community aimed to make network plugins interoperable between container execution engines. It aims to be as common and vendor-neutral as possible to support a wide variety of networking options — from MACVLAN to modern SDNs such as Weave and flannel.
CNI is growing in popularity. It got its start as a network plugin layer for rkt, a container runtime from CoreOS. Today rkt ships with multiple CNI plugins allowing users to take advantage of virtual switching, MACVLAN and IPVLAN as well as multiple IP management strategies, including DHCP. CNI is getting even wider adoption with Kubernetes adding support for it. Kubernetes accelerates development cycles while simplifying operations, and with support for CNI is taking the next step toward a common ground for networking. For continued success toward interoperability, Kubernetes users can come to this session to learn the CNI basics.
This talk will cover the CNI interface, including an example of how to build a simple plugin. It will also show Kubernetes users how CNI can be used to solve their networking challenges and how they can get involved.
KubeCon schedule link: http://sched.co/4VAo
(Draft) Kubernetes - A Comprehensive OverviewBob KillenKubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called pods. Its main components include a master node that manages the cluster and worker nodes that run the applications. It uses labels to organize resources and selectors to group related objects. Common concepts include pods, services for discovery/load balancing, replica controllers for scaling, and namespaces for isolation. It provides mechanisms for configuration, storage, security, and networking out of the box to ensure containers can run reliably and be easily managed at scale.
Introduction to DockerPubudu JayawardanaDocker is a tool that allows applications to run in isolated containers to make them portable and consistent across environments. It provides benefits like easy developer onboarding, eliminating application conflicts, and consistent deployments. Docker tools include the Docker Engine, Docker Client, Docker Compose, and Docker Hub. Key concepts are images which are templates for containers, and containers which are where the code runs based on an image. The document outlines how to build custom images from Dockerfiles, communicate between containers using linking or networks, and deploy containers using Docker Compose or in the cloud.
Docker BasicsDuckDuckGoDocker is an open source containerization platform that allows applications to be easily deployed and run across various operating systems and cloud environments. It allows applications and their dependencies to be packaged into standardized executable units called containers that can be run anywhere. Containers are more portable and provide better isolation than virtual machines, making them useful for microservices architecture, continuous integration/deployment, and cloud-native applications.
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi엔터프라이즈 고객사 IT 부서 담당자분들께 실습 교육을 위해 오픈소스컨설팅 한철희님께서 만든 자료입니다.
사전에 고객 테스트를 위해 실습환경을 완벽하게 만들어가는 센스!
기초부터 한 걸음이 얼마나 중요한 지 다들 아실거라 믿습니다.
Kubernetes IntroductionPeng XiaoThis document provides an overview of Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications. It describes Kubernetes' architecture including nodes, pods, replication controllers, services, and networking. It also discusses how to set up Kubernetes environments using Minikube or kubeadm and get started deploying pods and services.
Docker and the Linux KernelDocker, Inc.The document summarizes a talk given at the Linux Plumbers Conference 2014 about Docker and the Linux kernel. It discusses what Docker is, how it uses kernel features like namespaces and cgroups, its different storage drivers and their issues, kernel requirements, and how Docker and kernel developers can collaborate to test and improve the kernel and Docker software.
Introduction to Docker storage, volume and imageejlp12Docker storage drivers allow images and containers to be stored in different ways by implementing a pluggable storage driver interface. Common storage drivers include overlay2, aufs, devicemapper, and vfs. Images are composed of read-only layers stacked on top of each other, with containers adding a writable layer. Storage can be persisted using volumes, bind mounts, or tmpfs mounts. Strategies for managing persistent container data include host-based storage, volume plugins, and container storage platforms.
Docker Swarm IntroductionrajdeepDocker Swarm allows managing Docker clusters remotely. The key components are swarm managers, swarm nodes, and a scheduler. Swarm managers oversee nodes in the cluster using Docker APIs. The scheduler uses strategies and filters to determine where to place containers on nodes. Discovery services help register and discover nodes in the cluster.
What is DockerPavel KlimiankouDocker allows you to package applications with their dependencies into standardized units called containers that can run on any Linux server. Containers are more portable and efficient than virtual machines, starting in milliseconds and using less disk space. Docker makes it easy to deploy and run applications without having to rebuild environments and guarantees that an application will run the same regardless of the infrastructure it is running on.
Kubernetes 101Crevise TechnologiesKubernetes is an open source container orchestration system that automates the deployment, maintenance, and scaling of containerized applications. It groups related containers into logical units called pods and handles scheduling pods onto nodes in a compute cluster while ensuring their desired state is maintained. Kubernetes uses concepts like labels and pods to organize containers that make up an application for easy management and discovery.
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdfssuserf8b8bd1안녕하세요. kt ds에서 서버/OS직무 IT시스템관리 Meister로 활동하고 있습니다. ‘24년 CentOS 지원 종료에 따라 주요 이슈는 무엇인지, 기업에서는 무엇을 준비하고 방안을 마련해야 하는지에 대한 이야기를 하고자 합니다.
Introduction to dockerWalid AshrafDocker is an open platform for developing, shipping, and running applications. It allows separating applications from infrastructure and treating infrastructure like code. Docker provides lightweight containers that package code and dependencies together. The Docker architecture includes images that act as templates for containers, a client-server model with a daemon, and registries for storing images. Key components that enable containers are namespaces, cgroups, and capabilities. The Docker ecosystem includes services like Docker Hub, Docker Swarm for clustering, and Docker Compose for orchestration.
Docker introductiondotCloudDocker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!This DevOps Docker Tutorial on what is docker ( Docker Tutorial Blog Series: https://goo.gl/32kupf ) will help you understand how to use Docker Hub, Docker Images, Docker Container & Docker Compose. This tutorial explains Docker's working Architecture and Docker Engine in detail. This Docker tutorial also includes a Hands-On session around Docker by the end of which you will learn to pull a centos Docker Image and spin your own Docker Container. You will also see how to launch multiple docker containers using Docker Compose. Finally, it will also tell you the role Docker plays in the DevOps life-cycle.
The Hands-On session is performed on an Ubuntu-64bit machine in which Docker is installed.
DevOps with AnsibleSwapnil JainThis document provides an overview of DevOps with Swapnil Jain. It introduces Swapnil and his background, then covers an agenda on Ansible including an introduction, use cases, architecture, modules demo, playbook demo, Ansible Tower features, and Tower demo. Ansible is introduced as an open source configuration management and orchestration tool that can automate and standardize remote host configuration. Common use cases include provisioning, configuration management, application deployment, continuous delivery, security and compliance, and orchestration.
Docker introductionPhuc NguyenThe document introduces Docker, a container platform. It discusses how Docker addresses issues with deploying different PHP projects that have varying version requirements by allowing each project to run isolated in its own container with specified dependencies. It then covers key Docker concepts like images, containers, linking, exposing ports, volumes, and Dockerfiles. The document highlights advantages of Docker like enabling applications to run anywhere without compatibility issues and making deployment more efficient.
Docker introOleg ZDocker allows users to package applications with all their dependencies into standardized units called containers that can run on any Linux server. Containers are more lightweight than virtual machines because they share the host operating system and only require the additional libraries and binaries needed to run the application rather than a full guest operating system. Docker uses containers and an image format to deploy applications in a consistent manner across development, testing, and production. The document provides examples of how to define a Dockerfile to build an image, run containers from images using docker-compose, and common Docker commands.
Container Network Interface: Network Plugins for Kubernetes and beyondKubeAcademyWith the rise of modern containers comes new problems to solve – especially in networking. Numerous container SDN solutions have recently entered the market, each best suited for a particular environment. Combined with multiple container runtimes and orchestrators available today, there exists a need for a common layer to allow interoperability between them and the network solutions.
As different environments demand different networking solutions, multiple vendors and viewpoints look to a specification to help guide interoperability. Container Network Interface (CNI) is a specification started by CoreOS with the input from the wider open source community aimed to make network plugins interoperable between container execution engines. It aims to be as common and vendor-neutral as possible to support a wide variety of networking options — from MACVLAN to modern SDNs such as Weave and flannel.
CNI is growing in popularity. It got its start as a network plugin layer for rkt, a container runtime from CoreOS. Today rkt ships with multiple CNI plugins allowing users to take advantage of virtual switching, MACVLAN and IPVLAN as well as multiple IP management strategies, including DHCP. CNI is getting even wider adoption with Kubernetes adding support for it. Kubernetes accelerates development cycles while simplifying operations, and with support for CNI is taking the next step toward a common ground for networking. For continued success toward interoperability, Kubernetes users can come to this session to learn the CNI basics.
This talk will cover the CNI interface, including an example of how to build a simple plugin. It will also show Kubernetes users how CNI can be used to solve their networking challenges and how they can get involved.
KubeCon schedule link: http://sched.co/4VAo
(Draft) Kubernetes - A Comprehensive OverviewBob KillenKubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery called pods. Its main components include a master node that manages the cluster and worker nodes that run the applications. It uses labels to organize resources and selectors to group related objects. Common concepts include pods, services for discovery/load balancing, replica controllers for scaling, and namespaces for isolation. It provides mechanisms for configuration, storage, security, and networking out of the box to ensure containers can run reliably and be easily managed at scale.
Introduction to DockerPubudu JayawardanaDocker is a tool that allows applications to run in isolated containers to make them portable and consistent across environments. It provides benefits like easy developer onboarding, eliminating application conflicts, and consistent deployments. Docker tools include the Docker Engine, Docker Client, Docker Compose, and Docker Hub. Key concepts are images which are templates for containers, and containers which are where the code runs based on an image. The document outlines how to build custom images from Dockerfiles, communicate between containers using linking or networks, and deploy containers using Docker Compose or in the cloud.
Docker BasicsDuckDuckGoDocker is an open source containerization platform that allows applications to be easily deployed and run across various operating systems and cloud environments. It allows applications and their dependencies to be packaged into standardized executable units called containers that can be run anywhere. Containers are more portable and provide better isolation than virtual machines, making them useful for microservices architecture, continuous integration/deployment, and cloud-native applications.
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi엔터프라이즈 고객사 IT 부서 담당자분들께 실습 교육을 위해 오픈소스컨설팅 한철희님께서 만든 자료입니다.
사전에 고객 테스트를 위해 실습환경을 완벽하게 만들어가는 센스!
기초부터 한 걸음이 얼마나 중요한 지 다들 아실거라 믿습니다.
Kubernetes IntroductionPeng XiaoThis document provides an overview of Kubernetes, an open-source system for automating deployment, scaling, and management of containerized applications. It describes Kubernetes' architecture including nodes, pods, replication controllers, services, and networking. It also discusses how to set up Kubernetes environments using Minikube or kubeadm and get started deploying pods and services.
Docker and the Linux KernelDocker, Inc.The document summarizes a talk given at the Linux Plumbers Conference 2014 about Docker and the Linux kernel. It discusses what Docker is, how it uses kernel features like namespaces and cgroups, its different storage drivers and their issues, kernel requirements, and how Docker and kernel developers can collaborate to test and improve the kernel and Docker software.
Introduction to Docker storage, volume and imageejlp12Docker storage drivers allow images and containers to be stored in different ways by implementing a pluggable storage driver interface. Common storage drivers include overlay2, aufs, devicemapper, and vfs. Images are composed of read-only layers stacked on top of each other, with containers adding a writable layer. Storage can be persisted using volumes, bind mounts, or tmpfs mounts. Strategies for managing persistent container data include host-based storage, volume plugins, and container storage platforms.
Docker Swarm IntroductionrajdeepDocker Swarm allows managing Docker clusters remotely. The key components are swarm managers, swarm nodes, and a scheduler. Swarm managers oversee nodes in the cluster using Docker APIs. The scheduler uses strategies and filters to determine where to place containers on nodes. Discovery services help register and discover nodes in the cluster.
What is DockerPavel KlimiankouDocker allows you to package applications with their dependencies into standardized units called containers that can run on any Linux server. Containers are more portable and efficient than virtual machines, starting in milliseconds and using less disk space. Docker makes it easy to deploy and run applications without having to rebuild environments and guarantees that an application will run the same regardless of the infrastructure it is running on.
Kubernetes 101Crevise TechnologiesKubernetes is an open source container orchestration system that automates the deployment, maintenance, and scaling of containerized applications. It groups related containers into logical units called pods and handles scheduling pods onto nodes in a compute cluster while ensuring their desired state is maintained. Kubernetes uses concepts like labels and pods to organize containers that make up an application for easy management and discovery.
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdfssuserf8b8bd1안녕하세요. kt ds에서 서버/OS직무 IT시스템관리 Meister로 활동하고 있습니다. ‘24년 CentOS 지원 종료에 따라 주요 이슈는 무엇인지, 기업에서는 무엇을 준비하고 방안을 마련해야 하는지에 대한 이야기를 하고자 합니다.
Introduction to dockerWalid AshrafDocker is an open platform for developing, shipping, and running applications. It allows separating applications from infrastructure and treating infrastructure like code. Docker provides lightweight containers that package code and dependencies together. The Docker architecture includes images that act as templates for containers, a client-server model with a daemon, and registries for storing images. Key components that enable containers are namespaces, cgroups, and capabilities. The Docker ecosystem includes services like Docker Hub, Docker Swarm for clustering, and Docker Compose for orchestration.
Docker introductiondotCloudDocker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!This DevOps Docker Tutorial on what is docker ( Docker Tutorial Blog Series: https://goo.gl/32kupf ) will help you understand how to use Docker Hub, Docker Images, Docker Container & Docker Compose. This tutorial explains Docker's working Architecture and Docker Engine in detail. This Docker tutorial also includes a Hands-On session around Docker by the end of which you will learn to pull a centos Docker Image and spin your own Docker Container. You will also see how to launch multiple docker containers using Docker Compose. Finally, it will also tell you the role Docker plays in the DevOps life-cycle.
The Hands-On session is performed on an Ubuntu-64bit machine in which Docker is installed.
The Future of EverythingMichael DucyThe document repeatedly discusses Docker, with the word "Docker" appearing over 200 times. In one section, it mentions "Micro-Services" alongside Docker. Otherwise, it only contains the word "Docker" and does not provide any other context or information.
Foreman in Your Data Center :OSDC 2015Stephen BenjaminAn introductory talk to Foreman, with an overview of how Foreman's plugin ecosystem can help you manage your data center. We'll talk about Discovery, Katello, Docker, and additional configuration management platforms beyond Puppet.
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine요즘 규모에 상관 없이 서버를 운영하는 웹서비스 업체에서는 도커라는 주제가 화두입니다. 오히려 발빠른 개발자나 운영자들은 이미 도커를 이용하여 서비스를 운영하고 있지요. 본 세션은 도커의 기술적인 내용 보다는 사용자 입장에서 알아야 할 내용을 중심으로 구성됩니다.
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee저희 팀에서 Docker Swarm을 처음 도입한 계기는 사실 배포 자동화 프로세스 구축하고 싶었기 때문이었습니다.
처음엔 서버가 하나 뿐이여서 컨테이너 오케스트레이션의 묘미를 느끼지 못했는데 관리자, 푸시, 이벤트, 테스트 등등 여러 서버가 붙으면서 여러개의 서버를 관리해야 했는데
미리 구축해놓은 Docker Swarm이 많은 편의 기능을 제공하고 있어서 여러개의 서버를 관리하는 것도 개발자가 부담없이 할 수 있게 되었습니다.
이 슬라이드는 제가 서버를 구축하는 과정에서 겪었던 어려움들을 여러분은 겪지 않길 바라며 제작하게 되었습니다.
만약 이 슬라이드를 보시는 분이 Docker및 Docker Swarm을 처음 접해보시는 거라면 이 자료가 좋은 가이드가 될 수 있을 것 같습니다.
감사합니다.
이도현 드림
[17.01.19] docker introduction (Korean Version)Ildoo KimDocker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi- 클라우드 속의 Docker
- Docker Architecture & Build
- Docker 환경 구축
- Docker 데이터 볼륨, 이미지, 네트워킹
- Kubernetes 목적 및 활용
- Docker, Kubernetes 구성
- Docker Testing
9. 버전 관리 (Version control)
• 소스 코드를 버전으로 관리하자!
• 게임의 Save point와 비슷한 개념
• Git, Mercurial, Bazzar, Subversion, …
• 취소 (Ctrl + Z) Revert / 저장 (Ctrl + S) Commit
• 백업 Push / Pull
• 브랜치(Branch), 태그 등등
10. 버전 관리 (Version control)
• Hosting: github, Bitbucket, gitlab 등등
11. 서버 개발하기
문제: A, B, C가 시간표 서버를 같이 개발하고 싶어한다.
환경 설정 매뉴얼의 압박…
A가 시간표에 기능을 개발하는 동안
B도 다른 시간표 기능을 개발할 수 있는가?
시간표 서버가 고장났다…
다른 시간표 서버로 바로 옮길 수 있는가?
서버가 뭔가 잘못됐다…
서버를 빨리 재시작 / 재구축할 수 있는가?
13. 가상화 (Virtualization)
• 운영체제 수업에서 배운 컴퓨터 구조
Hardware
Operating System
Application
• 호스트 기반 가상 머신을 이용하는
컴퓨터 구조
Hardware
Operating System
Operating System
Application
15. 가상화 (Virtualization)
• 필요할 때마다 컴퓨터 (가상 머신) 만들기
• 웹 서비스용 VM: Ubuntu + Apache + PHP + MySQL
• 자바 수업용 VM: Windows + Java + Eclipse
• 결재용 VM: Windows + ActiveX + 공인인증모듈 + 공인인증서
• 가상 머신 관리
• 각 가상 머신별로 CPU, 메모리, 디스크 지정 가능 (나중에 변경도 가능)
• Snapshot: Save point
• 가상 머신 내보내기
• 가상 머신 가져오기
• Virtualbox, VMware, Xen, KVM..
28. Docker 활용하기
• Docker를 활용한 서버 개발하기 $ git clone ~
$ cd univ-whoareyou-server
$ docker-compose build
$ docker-compose up -d
29. Docker 활용하기
• Docker를 활용한 서버 개발하기
$ git pull ~
$ docker-compose build
$ docker-compose up -d
30. Docker를 활용해 서버 개발하기
문제: A, B, C가 시간표 서버를 같이 개발하고 싶어한다.
환경 설정 매뉴얼의 압박…? Container 실행하면 끝!
A가 시간표에 기능을 개발하는 동안
B도 다른 시간표 기능을 개발할 수 있는가? YES!
시간표 서버가 고장났다…
다른 시간표 서버로 바로 옮길 수 있는가? YES!
서버가 뭔가 잘못됐다…
서버를 빨리 재시작 / 재구축할 수 있는가? YES!
34. 참고
• https://www.docker.com/
• 도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다
http://www.slideshare.net/pyrasis/docker-fordummies-44424016
• 도커(Docker) 튜토리얼 : 깐 김에 배포까지
http://blog.nacyot.com/articles/2014-01-27-easy-deploy-with-docker/
• Docker로 보는 서버 운영의 미래
http://www.slideshare.net/deview/1a6docker
• 예제: 작년 종합설계 때 썼던 웹 서버
https://bitbucket.org/jhgod/
univ-whoareyou-server