도커 이미지 다운로드 기본 명령어 : docker pull nginx:latest
1. 도커 이미지docker image Is
도커 컨테이너 - 생성 후 실행 안됨 :docker ps -a
도커 컨테이너 - 생성 후 실행 상태 :docker ps
2. 컨테이너 생성 + 실행 :docker run
컨테이너 생성 :docker create
컨테이너 실행 :docker start

ubuntu:latest -> 117MB, 9일전에 만든 이미지
nginx:latest -> 279MB , 3주전에 만든 이미지
우분투 컨테이너 실행
docker run -it ubuntu
-it: 터미널 모드로 실행
ubuntu: 사용할 이미지 이름
이렇게 하면 Ubuntu 리눅스 쉘 안으로 들어가게 된다
컨테이너에서 빠져나오기 :exit
docker run --name webserver -d -p 80:80 nginx
Nginx 웹서버 컨테이너를 실행하는 명령어
docker run#새 컨테이너를 생성하고 실행
--name webserver#컨테이너 이름을 'webserver'로 지정
-d#백그라운드 모드로 실행
-p 80:80#호스트의 포트 80 -> 컨테이너의 포트 80에 매핑
nginx#사용할 도커 이미지
도커가 실행중인 상태 확인할 때 : docker ps
컨테이너 실행시킬 때 에러 없이 잘 실행됐는지 로그 체크: docker logs [컨테이너 ID 또는 컨테이너명]
기존의 컨테이너를 중지하고 삭제한 후 새로운 컨테이너를 실행:
docker stop 088ef281417b # 현재 컨테이너 중지
docker rm 088ef281417b # 중지되어 있는 컨테이너 삭제
docker rm -f 088ef281417b # 실행되고 있는 컨테이너 삭제
컨테이너 접속
docker exec -it [컨테이너 ID 또는 컨테이너명] bash
예) Redis 컨테이너에 접속**
docker exec -it 0d1b2eb8b4bc bash
컨테이너에서 redis 사용해보기
root@0d1b2eb8b4bc:/data# redis-cli
127.0.0.1:6379>
docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
docker run -d -p 4000 : 80 nginx

docker run -p 4000:80라는 명령어를 입력하면 되면
도커를 실행하는 호스트의 4000번 포트를 컨테이너 80번 포트로 연결하도록 설정한다
이유는?
호스트와 컨테이너 간의 네트워크 통신
여러 컨테이너 간 포트 충돌 방지
1.같은 호스트에서 여러 컨테이너를 실행할 때 동일한 포트를 사용하면 충돌 발생
보안 및 접근 제어
유연한 서비스 구성
개발 환경과 운영 환경에서 다른 포트를 사용하여 서비스에 접근할 수 있도록 설정 가능
ex) 개발 환경에서는 호스트의 포트를 4000을 사용, 운영 환경에서는 포트 80을 사용 가능
[출처] https://prao.tistory.com/entry/Docker-Docker%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-Docker-CLI (Docker의 기본 개념과 자주 사용하는 Docker CLI)