[docker] [기본] 명령어 정리

bunny.log·2023년 6월 19일
0

도커 이미지는 컨테이너를 만들기 위해 필요한 설정이나 종속성들을 갖고 있는 소프트웨어 패키지입니다.

도커이미지는 Dockerhub에 이미 다른 사람들이 만들어 놓은 것을 이용 할 수도 있으며 직접 도커 이미지를 만들어서 사용할 수도 있고 직접 만든것을 Dockerhub에 업로드 할 수도 있습니다.

로컬서버 및 데스크톱에 도커이미지를 저장하기 위해서는 Dockerfile을 통해 새로운 이미지를 생성(docker build)하거나 도커허브로부터 이미지를 내려 받는 방법(docker pull)이 있습니다. 도커파일로 생성된 이미지는 도커 허브에 로그인을 통한 자격증명 후 업로드(docker push)를 하고 공개 및 비공개를 설정 할 수 있으며 또는 깃허브를 통해 Dockerfile 코드를 공유하여 관리하는 방법도 있습니다. 이렇게 만들어진 이미지를 실행(docker run)하면 우리가 서비스하려고 하는 애플리케이션 컨테이너가 됩니다.

도커 이미지 가져오기

Docker pull ansible

도커 이미지 빌드

Docker build -t docker-server -f Dockerfile .

해당 명령어는 Docker 이미지를 빌드하는 데 사용됩니다.
명령어를 구성하는 각 부분을 살펴보면 다음과 같습니다:

docker build
Docker 이미지를 빌드하는 명령어입니다.

-t docker-server
생성된 이미지에 "docker-server"라는 태그를 지정합니다.
이를 통해 이미지를 구별하고, 나중에 해당 이미지를 참조할 때 사용할 수 있습니다.

-f Dockerfile
Docker 이미지를 빌드하는 데 사용할 Dockerfile을 지정합니다.
Dockerfile은 이미지를 구성하는 빌드 지시문들의 집합입니다.
도커파일의 이름을 지정하지 않으면 파일명 자체가 도커파일인 내용을 찾습니다.

.
현재 디렉토리를 root로 사용합니다.
Docker 빌드 프로세스에서는 빌드 컨텍스트의 파일들을 사용하여 이미지를 구성합니다.

따라서, 위의 명령어는 현재 디렉토리의 Dockerfile을 사용하여 "docker-server"라는 이름과 태그를 가진 Docker 이미지를 빌드합니다.

이 이미지는 나중에 docker run 명령어를 사용하여 컨테이너를 생성하고 실행할 때 참조할 수 있습니다.

도커 컨테이너 실행

  1. 도커컨테이너 실행에는 도커이미지가 필요하다.
  2. 운영체제(windows, mac)에서 http://localhost:8080으로 접속하면
    docker-server내부의 8080포트로 포워딩 하여 응답하겠다는 내용이다.
Docker run -p 8080:8080 —name mytomcat docker-server:latest 

해당 명령어는 docker-server:latest라는 이미지를 사용하여 myTomcat 웹 서버를 실행하는 Docker 컨테이너를 생성하는 데 사용됩니다.

docker run: Docker 컨테이너 생성 및 실행하는 명령어입니다.

-p 8080:8080
호스트의 8080 포트를 컨테이너의 8080 포트로 포트 포워딩합니다.
이를 통해 호스트에서 컨테이너의 웹 서비스에 접근할 수 있게 됩니다.

--name my-tomcat
컨테이너에 "mytomcat"이라는 이름을 지정합니다.

docker-server:latest
"docker-server"라는 이미지의 "latest" 태그를 사용하여 컨테이너를 생성합니다. "docker-server"는 이미지의 이름이고, "latest"는 이미지의 태그입니다.

따라서, 위의 명령어는 호스트의 8080 포트를 컨테이너의 8080 포트로 포트 포워딩하고, "docker-server:latest" 이미지를 사용하여 "my-tomcat"이라는 이름을 가진 Docker 컨테이너를 실행합니다. 이를 통해 호스트에서 Tomcat 웹 서버에 접근할 수 있습니다.

도커 컨테이너 접속(SSH 서버 접속)

ssh root@localhost -p 10022
#다음 패스워드 입력
P@ssW0rd

#현재 기동되어 있는 도커컨테이너의 이름으로 터널링 접속할 경우 
docker ps -a
Docker exec -it ansible-server bash
profile
https://github.com/nam-yeun-hwa

0개의 댓글