-
https://docs.docker.com/engine/install/ubuntu/
Install Docker Engine on Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install.
docs.docker.com
기본 ip부여 docker 설치
DOCKER_USER=ubuntu -> 사용자 권한 부여
sudo apt-get update && sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# 도커가 제공하는 공개키를 신뢰하도록 설정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 도커 공식 레파지토리 등록
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $DOCKER_USER재부팅 후 확인할수있다 docker compose 설치
https://docs.docker.com/compose/install/
Overview of installing Docker Compose
Learn how to install Docker Compose. Compose is available natively on Docker Desktop, as a Docker Engine plugin, and as a standalone tool.
docs.docker.com
DOCKER_COMPOSE_VERSION=2.17.3 -> 버전 홈페이지에 확인
curl -L " https://github.com/docker/compose/releases/download/$ {DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-composekubectl 설치
Install and Set Up kubectl on Linux
Before you begin You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.28 client can communicate with v1.27, v1.28, and v1.29 control planes. Using the latest compatible version of kubectl helps avoid
kubernetes.io
apt-get update && apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update && apt-get install -y kubectlkustomize 설치
https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/
Binaries
Install Kustomize by downloading precompiled binaries.
kubectl.docs.kubernetes.io
KUSTOMIZE_VERSION=v4.4.1
curl -s " https://raw.githubusercontent.com/kubernetes-sigs/kustomize/kustomize/$ {KUSTOMIZE_VERSION}/hack/install_kustomize.sh" | bash
kustomize 파일의 실행경로로 옮기는 과정
install -o root -g root -m 0755 kustomize /usr/local/bin/kustomizeminikube 설치
https://minikube.sigs.k8s.io/docs/start/
minikube start
minikube is local Kubernetes
minikube.sigs.k8s.io
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikubedriver를 도커로 지정실행을하지만 root 권한으로는 실행이 불가능하다고 나온다 root 권한이 아닌곳에서 하면 실행할수있다
Kubernetes 클러스터에 등록된 노드들의 정보가 나타납니다
현재 클러스터의 정보가 출력됩니다Minikube 클러스터에서 현재 활성화된 애드온과 비활성화된 애드온의 목록이 출력됩니다. 각 애드온은 이름과 상태(활성화 또는 비활성화)가 표시됩니다. minikube addons enable ingress
이 명령을 실행하면 Minikube 클러스터에 Ingress 컨트롤러가 설치되고 활성화됩니다. 이를 통해 클러스터 내부에서 외부로의 트래픽을 라우팅하고 관리할 수 있습니다.
dashboard
ingress
istio
metallb
모두 활성화 하기
docker run [이미지]
다운로드 확인
정지를 시킨다
docker ps -a
정지가 된다
docker start (id 확인)
다시 방금이미지를 실행하면
docker create nginx
create으로 실행
docker ps -a 로 확인
create nginx
를 실행 해준다
그리고 삭제 명령어
docker ps 삭제 확인
docker run ubuntu:focal 생성
접속
docker run -it ubuntu:focal
ctrl+d -> bg 접속
docker ps 확인
docker run -d --name mynginx nginx
이름을 지정해서 생성
docker run -d --name mynginx -p 80:80 nginx
포트와 이름 지정
ubuntu ip주소로 접속을 하면 접속이 가능하다docker rmi (docker images -q) 이미지 삭제
docker stop $(docker ps -aq) 모든 컨테이너 종료
docker rm $(docker ps -aq)
https://ajdkfl6445.gitbook.io/study/devops/docker/make-image
도커 이미지 생성하기 - 콥 노트
WORKDIR: WORKDIR 지시자는 도커 파일에서 리눅스 명령어의 cd와 유사하게 뒤에 오는 모든 지시자(RUN, CMD, COPY, ADD 등)에 대한 작업 디렉토리를 설정한다. 특히 원래 최상위 파일이나 폴더에 있던 이름
ajdkfl6445.gitbook.io
docker run --entrypoint sh ubuntu:focal
--entrypoint sh: --entrypoint 옵션을 사용하여 컨테이너의 진입점(entrypoint)을 재정의합니다. 이 경우, 컨테이너가 시작될 때 셸 (shell) 프로세스가 진입점으로 사용됩니다. 즉, 컨테이너가 시작되면 sh 셸이 실행됩니다.
docker run --entrypoint echo ubuntu:focal hello_world
docker inspect f8
바뀌었다start해도 되지않는다 (그럼 삭제하도 다른 방법으로 재설치)
docker run -it -e MY_HOST=itbank.com ubuntu:focal bash
환경변수 설정
docker run -it -p 8080:80 nginx
curl localhost:8080docker run -it -p 8080:80 nginx -rm
docker run -it -p 8080:80 --rm -v $(pwd):/usr/share/nginx/html/ nginxhttps://docs.docker.com/get-started/08_using_compose/
Use Docker Compose
Using Docker Compose for multi-container applications
docs.docker.com
6000 포트 누가 사용하고있어 다른 포드로 설정
윈도우 접속이 가능하다기존에 존재한 파일 삭제 후 재생성
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
ports:
- "60000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: { }firefox -> localhost:60000 으로 접속 간단하게 회원가입 후 접속 모습 docker compose 8000 포트로 생성
윈도우에 접속하면 log가 남는다
docker compose down -v
제거
docker compose build
제거 후 재구성https://runebook.dev/ko/docs/docker/compose/gettingstarted/index
Docker Compose 시작하기
Documentation Contributors GitHub
runebook.dev
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)docker build -t flask-redis .
docker compose up
중지
다시 실행하면 이어서된다'docker' 카테고리의 다른 글
docker (jenkins) (0) 2023.10.10 docker (주문앱 배포) (1) 2023.10.10 docker 4 (grafana) (0) 2023.10.10 docker 3 (volume) (1) 2023.10.06 docker 2 (0) 2023.10.05