Skip to main content

Docker Command

## 버전 확인 및 헬로 월드

docker version
docker -v
docker run hello-world


# 이미지

docker image ls # 이미지리스트 출력
docker system df # 이미지 및 디스크 사용량
docker image inspect nginx # 이미지 정보 출력

docker pull ubuntu # 가져오기
docker push <사용자이름>/<이미지이름>:<태그> # 이미지 푸쉬 ( 이미지 이름 입력 )

docker search python #검색
docker image prune # 사용하지 않는 모든 image 삭제
docker image rm nginx # 제거
docker rim 이미지 아이디 # 제거
docker image rm -f $(docker image ls -q) # 모든 이미지 제거


# 현재 실행중인 컨테이너 및 모든 컨테이너

docker ps
docker ps -a ( docker container ps -a 줄임말 )





# 컨테이너 ( nginx | centos | 우분투 실행 )

-d 백그라운드 실행 ( 생성 옵션 | 도커 시작하고, 필요하다면 attach로 bash 들어가는 방법)
-a attach도 같이 한다.
-p 포트설정 ( 기본 로그 출력에다, cmd 상으로도 입출력을 연결하는듯 , 생성 옵션 <외부>:<내부>)
-it 인터렉티브 터미널 ( -i (input pipe) , -t ( TTY support ) )
• https://stackoverflow.com/questions/43099116/error-the-input-device-is-not-a-tty
-e 환경변수 설정 실행 ( 생성 옵션 )
--rm 컨테이너 실행 후 종료시 바로 삭제
--name 컨테이너 이름 설정

eg) 1회용
docker run --rm -it --name node_web node:16 bash
eg) 백그라운드 러닝
docker run -itd --name node_web node:16


docker pull nginx #이미지 다운
docker image ls #확인
docker container rename webserver nginxserver # 컨테이너 이름 변경


docker run | create | start | stop | kill <dockerImageName> <command>
*run = create && start 이다.
*kill 바로 종료, stop 은 작업중인것 마져 하고 종료

---nginx
docker run --name webserver -d -p 6080:80 nginx # 컨테이너 생성 및 실행
docker start webserver # 컨테이너 실행 ( 이미 만들어진 )
docker stop webserver # 컨테이너 중지
docker rm webserver # 컨테이너 삭제


---centos
docker container run -it --name "test1" centos /bin/cal

docker run -it --name "test2" centos /bin/bash


---ubuntu
docker container run ubuntu:lastest /bin/echo 'hello world'

docker container run -it --name "ubuntush" ubuntu bash

docker run -itd --name ubsh ubuntu bash


# 컨테이너 all rm

docker rm `docker ps -aq `


# 컨테이너 rename
docker rename origin_name chagned_name


# 컨테이너 attach detacㄹh

docker start|stop NAME
docker attach
컨트롤P,컨트롤Q > 빠져나오기

docker logs [ container ID ]


# 컨테이너 exec
*컨테이너에 명령어 전달하기
docker exec -it ub /bin/cat /etc/hosts
docker exec -it ub /bin/echo "hello"

*도커 쉘 실행하기
docker exec -it postgres /bin/bash

eg) docker exec -it redis_back redis-cli -a password
>ping


# 컨테이너 update

# docker update --restart=always <container>
docker update --restart=always TestContainer

# 컨테이너 port

docker port test2 # 80/tcp -> 0.0.0.0:4444 포트 정보 출력된다. ( -p 4444:80 연결된 모습 )

# 컨테이너 cp:file copy

docker cp ./a.txt origin:/ # 명령어 : docker cp [클라이언트 path] [컨테이너]:[path]
docker cp origin:/a.txt ./ # 반대로도 가능


# 정리
docker system prune # 사용하지않는 컨테이너,이미지,네트워크 제거
- disk 용량 오류가 발생할 때,


# 로그인

docker login
docker logout


# 이미지 빌드

# 이미지 이름의 관행 <저장소이름>/<이미지이름>:버전

docker build -t ehdudtkatka/blockcrawl:0.2 .
docker run -it -p 3001:80 --name webserver_2 webserver_2:0.0.1

# 이미지 Push

docker tag blockcrawl_back:0.2 ehdudtkatka/blockcrawl:0.2 # 이미지 이름에 내 아이디가 들어가도록 바꾸어야한다.
docker push ehdudtkatka/blockcrawl:0.2 # 그리고 push


https://www.lainyzine.com/ko/article/how-to-remove-all-docker-contaniers-and-images/