728x90
✅ docker 클라이언트와 서버(엔진) 버전 확인
1) 설치가 되어있지 않다면 도커 설치하기
➡️ https://www.docker.com/products/docker-desktop
2) 버전 확인
➜ docker version
client 와 server(엔진) 버전 및 정보가 출력된다.
서버에서 반환된 정보를 받았다는 것을 통해 실제로 도커가 내 컴퓨터 서버와 통신하고 있다는 것을 알 수 있다.
3) 세부 정보
➜ docker info
엔진 구성 및 설정에 대한 많은 세부 정보들이 나온다.
📦 Nginx(웹 서버) image의 컨테이너 생성
📌 docker container run
➜ docker container run --publish 80:80 nginx
🔧 실행 원리 🔧
- Docker Hub로 부터 도커 엔진이 실제로 nginx라는 "이미지"를 찾았고, 최신 이미지를 다운로드 함.
- 그 이미지로부터의 새로운 "컨테이너"를 시작한 것.
- 명령줄 80은 내 컴퓨터의 로컬 "포트 80"을 열고,
- 해당 컨테이너 내부에서 실행되는 "실행 파일"로 이동Docker Hub = 기본 원격 이미지 저장소
📌 --detach를 사용하면?
➜ docker container run --publish 80:80 --detach nginx
a197507b5162a1fc20e060a2a03668833878e0a907b2b99d54b50fb43710a3e1
컨테이너의 고유 ID를 반환하고,
(이 ID 는 새로운 컨테이너를 실행할 때 마다 새롭게 반환 될 것)
Docker에게 백그라운드에서 실행하도록 지시하기 때문에 여전히 브라우저는 실행하는 것을 확인 할 수 있다.
📦 Mongo image의 컨테이너 생성
📌 docker container run
> docker run --name mongo -d mongo
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
429ea03286f4 mongo "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 27017/tcp mongo
c7b9e658e268 nginx "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp webhost
📦 Mysql 이미지의 컨테이너 생성
📌 docker container run
> docker container run -d -p 3306:3306 mysql
환경 변수와 컨테이너 이름 추가
> docker container run -d -p 3306:3306 --name mysql_db -e MYSQL_RANDOM_ROOT_PASSWORD=yes mysql
아래 링크를 통해 더 자세히 알아보세요
docker compose 로 mysql 설치하는 두가지 방법
📦 httpd 이미지의 컨테이너 생성
> docker container run -d --name webserver -p 8080:80 httpd
> curl localhost:8080
<html><body><h1>It works!</h1></body></html>
⚙️ docker 명령어 및 컨테이너 작업
📌 컨테이너 나열 ls
docker ps , docker container ls 같음
➜ docker ps
➜ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a197507b5162 nginx "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp sad_cerf
be1155ad97fc mysql:5.7 "docker-entrypoint.s…" 2 days ago Up 12 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp db_mysql
a19로 시작하는 이미지 nginx의 컨테이너가 실행되고 있음을 확인 할 수 있다.
📌 컨테이너 실행 stop
다시 컨테이너를 나열해보면 nginx의 컨테이너 실행이 중지됨을 확인 할 수 있다.
➜ docker container stop a19
a19
➜ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be1155ad97fc mysql:5.7 "docker-entrypoint.s…" 2 days ago Up 17 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp db_mysql
컨테이너 "이름"을 추가한 후 ls -a를 해보면 Name이 webhost 인 컨테이너 확인 가능
➜ docker container run --publish 80:80 --detach --name webhost nginx
c7b9e658e268f97903d1c49c5366cbf6aaca024c58a6e628fd3d485eba58094d
➜ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7b9e658e268 nginx "/docker-entrypoint.…" 46 seconds ago Up 45 seconds 0.0.0.0:80->80/tcp webhost
a197507b5162 nginx "/docker-entrypoint.…" 12 minutes ago Exited (0) 6 minutes ago sad_cerf
2a8840fadde4 nginx "/docker-entrypoint.…" 21 minutes ago Exited (0) 12 minutes ago eager_bardeen
be1155ad97fc mysql:5.7 "docker-entrypoint.s…" 2 days ago Up 21 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp db_mysql
📌 최신 로그들을 반환 logs
➜ docker container logs webhost
📌 컨테이너 내부의 프로세스들 확인
- 특정 컨테이너 내에 실행되고 있는 프로세스들 나열 top
> docker top > docker container top webhost
- 실행되고 있는 모든 프로세스들 보기 ps aux
> ps aux
grep 이라는 필터링 툴을 이용하여 보기
> ps aux | grep mongo
📌 컨테이너 삭제 rm
➜ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7b9e658e268 nginx "/docker-entrypoint.…" 6 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp webhost
a197507b5162 nginx "/docker-entrypoint.…" 18 minutes ago Exited (0) 12 minutes ago sad_cerf
2a8840fadde4 nginx "/docker-entrypoint.…" 27 minutes ago Exited (0) 18 minutes ago eager_bardeen
be1155ad97fc mysql:5.7 "docker-entrypoint.s…" 2 days ago Up 27 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp db_mysql
➜ docker container rm a19 2a8 be1
a19
2a8
Error response from daemon: You cannot remove a running container be1155ad97fc8be25f81083f82240c6e63698a6f2c0d25f0390f83f896423d2b. Stop the container before attempting removal or force remove
실행 중인 컨테이너를 삭제 할 때는 -f 를 붙여줄 것
➜ ~ docker container rm -f be1
be1
➜ ~ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7b9e658e268 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp webhost
⭐️ velog 보기 ⭐️
반응형
'💻Programming > Environment' 카테고리의 다른 글
[mac] Docker Compose 로 mysql 더 쉽게 설치하여 laravel 프로젝트에서 사용하기 (0) | 2022.01.30 |
---|---|
mac 입문 - 터미널 명령어 (0) | 2022.01.14 |