Docker docker-compose 사전 요약
8454 단어 Dockerdocker-composetech
Docker docker-compose 사전 요약
22.04.07 업데이트
Concept
[ Build Once, Run Anyware ]
Role
Docker 컨테이너 내에서 개발하여 OS가 다르더라도 동작 환경을 통일시켜 응용 프로그램이 문제없이 동작할 수 있도록 한다
BestPractice
Install
※ PC OS의 내용을 설치
Docker command
Basic commands
<ContainerName>
bash <ContainerName>
<ImageName>
<VolumeName>
Docker Hub의 docker image pull
docker pull <imageName>:<tag>
(ex.)
docker pull node:14.15.4-slim
local의 모든 docker 이미지에서 docker container 만들기
존재하지 않으면 Docker Hub에서 pull
docker run node:14.15.4-slim
local이 가지고 있는 docker 이미지 확인 방법
docker images
local이 가지고 있는 docker container 확인 방법
docker ps
docker ps -a
옵션 (a) 을 추가하면 모두 표시할 수 있습니다.상태 docker container running
docker restart <ContainerID>
런닝 상태가 된 docker container
docker exec -it <ContainerID> bash
편집된 docker container에서 local에 새 그림 만들기
docker commit <ContainerID> <NewImageName>:<tag>
꼬리표가 붙다.Default는 latest입니다.docker image 복사 시 tag 지정
docker tag <imageName>:<tag> <NewImageName>:<tag>
docker image push를 docker hub에
docker push <userName>/<ImageName>:<tag>
docker hub pull original image
docker pull <username>/<imageName>:<tag>
docker container 삭제
docker rm <containerName>
아이디도 괜찮아요.docker 이미지 삭제
docker rmi <imageName>
아이디도 괜찮아요.local volume에 대한 확인 방법
docker volume ls
가끔 확인해 보니 쓰레기가 엉망진창으로 쌓여 있다rm
에서 삭제 가능docker volume rm <target>
local에 구축된 docker 네트워크 확인 방법
docker network ls
rm
에서 삭제 가능docker network rm <target>
docker 시스템 prune(한 번에 삭제)
docker system prune
탭 가져오기
docker search <imageName>
docker container에서 종료하는 단축키 명령
exit -> ctrl + d
detach -> ctrl + p + q
detach를 통해 뽑으면 컨테이너의 프로그램이 끊기지 않습니다. (작동 유지)docker attach <ContainerName>
Dockerfile
Sample
FROM node:16.13.0-slim
RUN apt-get update && apt-get install -y \
sudo curl vim wget procps \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
ENV NEXT_TELEMETRY_DISABLED=1
ENV USER_NAME=node
ENV USER_UID=1000
ARG wkdir=/home/${USER_NAME}/app
WORKDIR ${wkdir}
COPY ./app/package*.json /home/${USER_NAME}/app/
COPY ./app/yarn.lock /home/${USER_NAME}/app/
COPY ./app/ /home/${USER_NAME}/app/
RUN yarn install
RUN yarn build
RUN echo "root:root" | chpasswd \
&& usermod -aG sudo ${USER_NAME} \
&& echo "${USER_NAME}:${USER_NAME}" | chpasswd \
&& echo "%${USER_NAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/${USER_NAME} \
&& chmod 0440 /etc/sudoers.d/${USER_NAME} \
&& chown -hR ${USER_NAME}:${USER_NAME} ${wkdir}
USER ${USER_NAME}
# CMD [ "yarn", "start" ]
docker build -t <image name>:<tag name> (path)
ex.)
docker build -t practice:latest .
docker-compose
Basic commands
<ServiceName>
bash Sample
version: '3.3'
services:
frontend:
image: ${IMAGE_BASENAME}/ui:${TAG}
container_name: ${CONTAINER_BASENAME}-ui
build:
context: .
dockerfile: Dockerfile
volumes:
- ./app:/home/node/app
- frontend-volume:/home/node/app/node_modules
ports:
- ${FRONTEND_PORT}:3000
tty: true
restart: always
volumes:
frontend-volume:
name: ${CONTAINER_BASENAME}-volume
driver: local
함께 삭제
docker-compose down --rmi all --volumes --remove-orphans
Practices
Hello World image의 pull과 run
docker pull hello-world
docker run hello-world
처리 결과docker ( 🍇 ) :$ docker run -it hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
이미지 사용
docker run -it ubuntu bash
docker run -it --name tests ubuntu bash
docker run --rm -it --name tests ubuntu bash
docker run -d -it --name tests ubuntu bash
Docker Hub Push, Pull
docker run -it --name sample ubuntu bash
pwd
touch test
docker commit <ContainerID> ubuntu:v1
docker tag ubuntu:v1 <NewImageName>:<tag>
(ex.)
docker tag ubuntu:v1 yt0323/my-practice:v2
docker push yt0323/my-practice:v2
docker pull yt0323/my-practice:v2
docker run yt0323/my-practice:v2
Reference
이 문제에 관하여(Docker docker-compose 사전 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tzover/articles/docker_tz_220406텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)