VM vs Container
https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/
...
전통적인 배포 시대: 초기 조직은 애플리케이션을 물리 서버에서 실행했었다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생했다. 예를 들어 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있고, 결과적으로는 다른 애플리케이션의 성능이 저하될 수 있었다. 이에 대한 해결책은 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것이 있다. 그러나 이는 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않았으므로, 물리 서버를 많이 유지하기 위해서 조직에게 많은 비용이 들었다.
...
<출처> https://github.com/docker/labs/blob/master/beginner/chapters/alpine.md
1. 첫 컨테이너 실행하기
Alpine Linux(경량 리눅스 배포판)를 실행하고 도커 실행 명령어를 사용해 보겠습니다.
...
pull 명령은 Docker 레지스트리에서 알파인 이미지를 가져와 시스템에 저장합니다. docker images 명령을 사용하여 시스템의 모든 이미지 목록을 볼 수 있습니다.
Docker 아키텍처 및 용어
Images- 컨테이너를 생성하는 데 사용되는 애플리케이션의 파일 시스템 및 구성입니다. Docker 이미지에 대해 자세히 알아보려면 docker inspect alpine을 실행하세요.
...
이 부분은 Docker 실행이 명시적으로 실행될 때만 발생합니다. 2단계와 3단계의 이미지로 Docker 컨테이너가 빌드되며, 호스팅 OS에 관계없이 호스트 머신에서 실행됩니다.
Docker 실행
이제 이 이미지를 기반으로 Docker 컨테이너를 실행해 보겠습니다. 이를 위해 docker 실행 명령을 사용합니다.
...
Code Block |
---|
202310-DockerBasic# docker --help
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/home/zerobig/.docker")
-c, --context string Name of the context to use to connect to the daemon (overrides
DOCKER_HOST env var and default context set with "docker context use")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default
"info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/home/zerobig/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/home/zerobig/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/home/zerobig/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
builder Manage builds
buildx* Docker Buildx (Docker Inc., v0.9.1)
compose* Docker Compose (Docker Inc., v2.10.2)
config Manage Docker configs
container Manage containers
context Manage contexts
extension* Manages Docker extensions (Docker Inc., v0.2.9)
image Manage images
manifest Manage Docker image manifests and manifest lists
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
sbom* View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
scan* Docker Scan (Docker Inc., v0.19.0)
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
Commands:
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Run 'docker COMMAND --help' for more information on a command.
To get more help with docker, check out our guides at https://docs.docker.com/go/guides/
202310-DockerBasic# |
|
2. 정적 웹 컨테이너 실행하기
Dockerfile 작성
Code Block |
---|
202310-DockerBasic# mkdir docker-demo
202310-DockerBasic# cd docker-demo/
202310-DockerBasic# vi Dockerfile
FROM dockersamples/static-site
ENV AUTHOR=“zerobig” |
|
...