도커는 리눅스의 응용 프로그램들을 프로세스 격리기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.
docker version
docker -v
docker system info
docker system df
docker system df -v
docker container run 명령은 도커 이미지로부터 컨테이너를 생성하고 실행하는 명령
도커 컨테이너는 이미지를 바탕으로 작성
docker container run <option> <image> <command>
docker container run ubuntu:latest /bin/echo 'Hello Wolrd'
docker container run --name webserver -d -p 80:80 ngnix
docker container run --name webserver -d -p 80:80 ngnix:latest
# webserver 라는 이름의 컨테이너로 nginx 이미지를 띄운다.
# [-d] 옵션은 detach로 백그라운드에서 실행을 의미한다.
# [-p] 옵션은 포트 포워딩이다.
docker container run -it --name "test1" centos /bin/cal February 2018
#컨테이너를 생성/실행하면서 콘솔에 결과를 출력하고 이름은 "test1"로 centos이미지를 올리고
#/bin/cal 명령어를 실행한다.
docker container run -it --name "test2" centos /bin/bash
# [-i] 옵션은 컨테이너를 실행할 때 컨테이너 쪽 표준 입력과의 연결을 그대로 유지.
# 그러므로 컨테이너 쪽 셀에 들어가서 명령을 실행할 수 있다.
# [-t] 옵션은 유사터미널 기능을 활성화하는 옵션인데, -i 옵션을 사용하지 않으면
# 유사 터미널을 실행해도 여기에 입력할 수가 없으므로 -i와 -t 옵션을 합쳐 축약한
# -it 옵션을 사용한다.
docker container ls [option]
# [--all|-a] :모든 컨테이너
docker container ps
docker container stats <container-name>
docker container top <container-name>
docker container attach <container-name>
# ctrl-c : 컨테이너 종료
docker stop <container-name>
docker start <container-name>
docker container restart <container-name>
docker container rm <container-name>
docker container rm -f <container-name>
# 강제 종료 및 삭제
docker container run --cpu-shares=512 --memory=1g centos
# [--cpu-shares] : CPU의 사용 배분(비율)
# [--memory] : 사용할 메모리를 제한하여 실행
# [--evn=<환경변수>] : --env JAVA=xxx, -e JAVA=xxx
# [--user=사용자명] : --use
docker container exec -it <container> /bin/echo "HelloWorld"
docker container port <container>
docker container rename
docker container cp
docker container logs [options] <container-id | container-name>
docker container logs -f $(docker container ls --filter "ancestor=mysql" -q )
(컨테이너의 데이터퍼시스턴스 기법)
#v 옵션을 사용하여 호스트와 컨테이너 사이의 데이터를 공유한다.
docker container run -v 호스트디렉토리:컨테이너디렉토리 repository[:tag] [command]
호스트-컨테이너 데이터볼륨은 호스트 쪽 특정 디렉터리에 의존성을 갖는다. 데이터 볼륨 컨테이너의 볼륨은 도커에서 관리하는 영역인 호스트 머신의 /var/lib/docker/volumes/ 아래에 위치한다. 데이터볼륨 컨테이너 방식은 도커가 관리하는 디렉터리 영역에만 영향을 미친다.
docker image pull [option] <image-name>[:tag]
# centos의 모든 이미지 다운로드
docker image pull - a centos
docker pull nginx #이미지 다운로드
docker image ls [option] [repository]
docker image ls
docker images
# 도커 임지 상세 정보 표시
docker image inspect nginx:latest
# 이미지값만 표시
docker image inspect --format="{{ .ContainerConfig.Image}}" nginx:latest
# 이미지 tag 를 사용해 새이름으로 이미지를 복사한다.
docker image tag <origin-image-name> <new-image-name:tag>
docker image tag nginx:latest starlord/webserver:1.0
# 도커 허브에 공개되어 있는 이미지들을 조회한다.
docker search [option] <keyword>
docker serach ngnix
# 도커 이미지를 삭제한다.
docker image rm <optino> <image-name>
# 사용하지 않는 이미지들을 삭제한다.
docker image prune [-a|-f]
docker container commit [option] <container-name> <image-name:tag>
docker container commit -a "starlord" webserver ws-image:1.0
docker image ls
docker image inspect ws-image:1.0
docker container export <container>
docker container export <container> > current.tar
ls -al
tar -tf current.tar
tar tf current.tar | more
docker image save [option] <save-file> [image-name]
docker image save -o save.tar webserver
docker image load [option] <image>
docker imae load [option] <image-name>
docker ps -a
docker exec -it <container-name or id> /bin/bash
docker network create -d bridge webap-net
docker container run --net=webap-net -it centos
docker network ls --no-trunc
docker network connect [option] <network-name> <container-name>
docker network disconnect <network-name> <container-name>
docker network inspect [opeion] network
docker network rm <network-name>
docker system prune [option]
# [-a | -f]
touch Dockerfile
docker build -t <image-name> <경로[절대|상대]>
docker build -t sample:1.0 ./
docker build -t sample:1.0 -f <filename> ./
docker build -t sample1 -f Dockerfile.layer1 ./
docker images
# step1. ubuntu
FROM ubuntu:latest
#step2. ngnix
RUN apt-get update && apt-get install -y -q nginx
#step3. file copy
COPY index.html /usr/share/nginx/html/
#step4. start nginx
CMD ["nginx", "-g", "daemon off;"]
[wsl2]
memory=4GB
processors=2
swap=1GB
localhostForwarding=true
Docker(도커)를 이용한 간단한 CI/CD 개발환경 구축을 위한 개념 (0) | 2023.01.25 |
---|
댓글 영역