Contents

Docker AND Kubernetes

   May 9, 2023     6 min read

로그인

  • root / 123456
  • kadmin / 123456

방법

사진첨부

사진첨부

컨테이너 기본 사용법

  • 컨테이너 - 운영체제와 분리된 개념, 실행하기 위한 환경 정보가 다 들어가 있는 것

docker container run -d penguin --mode=1

- container run : 커맨드
- -d : 옵션
- penguin : 대상
- --mode=1 : 인자

- container : 상위 커맨드
- run : 하위 커맨드



단독 커맨드내용주요 옵션
login도커 레지스트리에 로그인-u -p
logout도커 레지스트리에 로그아웃거의 사용하지 않음
search도커 레지스트리를 검색거의 사용하지 않음
version도커 엔진 및 명령행 도구의 버전을 출력거의 사용하지 않음



주요 하위 커맨드

하위 커맨드내용생략 가능 여부주요 옵션
start컨테이너를 실행O-i
stop컨테이너를 정지O거의 사용하지 않음
create도커 이미지로부터 컨테이너를 생성O–name -e -p -v
run도커 이미지를 내려받고 컨테이너를 생성해 실행함 (다움 로드는 필요한 경우에만), docker image pull, docker container create, docker container start 라는 세 개의 명령을 하나로 합친 것과 같다.O–name -e -p -v -d -i -t
rm정지 상태의 컨테이너를 삭제O-f -v
exec실행 중인 컨테이너 속에서 프로그램을 실행O-i -t
ls컨테이너 목록을 출력*1-a
cp도커 컨테이너와 도커 호스트 간에 파일을 복사O거의 사용하지 않음
commit도커 컨테이너를 이미지로 변환O거의 사용하지 않음



옵션 형식내용
–name 컨테이너_이름컨테이너 이름을 지정함
-p 호스트_포트번호 : 컨테이너_포트번호포트 번호를 지정함
-v 호스트_디스크 : 컨테이너_디렉터리볼륨을 마운트함
–net=네트워크_이름컨테이너를 네트워크에 연결함
-e 환경변수_이름=값환경변수를 설정함
-d백그라운드로 실행함
-i컨테이너에 터미널(키보드)을 연결함
-t특수 키를 사용 가능하도록 함
-help사용 방법 안내 메시지를 출력함



생략형

  • -p : –publish
  • -v : –volume
  • -e : –env
  • -d : –detach
  • -i : –interactive
  • -t : –tty

사진첨부

사진첨부

사진첨부

사진첨부

컨테이너 생성과 삭제, 실행, 정지

사진첨부

사진첨부

# docker run --name apa01 -d httpd
# docker ps


사진첨부

# docker stop apa01
# docker ps
# docker ps -a

# docker rm apa01
# docker ps
# docker ps -a

# docker images



컨테이너의 통신

사진첨부

사진첨부

# docker run --name httpd01 -d -p 8081:80 httpd
# docker run --name httpd02 -d -p 8082:80 httpd
# docker run --name httpd03 -d -p 8083:80 httpd

# docker ps

http://192.168.1.104:8081
http://192.168.1.104:8082
http://192.168.1.104:8083

# docker exec -it httpd01 bash
$ cd /usr/local/apache2/htdocs
$ echo "httpd01" > index.html

$ apt-get update
$ apt-get install vim

$ ls /
$ exit



사진첨부

사진첨부

사진첨부

  • 종료)
# docker stop httpd01
# docker stop httpd02
# docker stop httpd03

# docker rm httpd01
# docker rm httpd02
# docker rm httpd03

# docker ps -a



이미지 삭제

사진첨부

사진첨부

# docker run --name httpd01 -d -p 8081:80 httpd
# docker run --name httpd02 -d -p 8082:80 httpd
# docker run --name httpd03 -d -p 8083:80 httpd

# docker ps -a 

# docker image ls

# docker image rm httpd -- 에러

# docker stop httpd01
# docker stop httpd02
# docker stop httpd03

# docker rm httpd01
# docker rm httpd02
# docker rm httpd03

# docker image rm httpd -- image 이름에 /가 없는 경우
or
# docker rmi httpd -- image 이름에 /가 없는 경우
or
# docker rmi [ID/이름] -- image 이름에 /가 있는 경우

# docker images



mysql 연습

# docker run --name mysql01 -dit -e MYSQL_ROOT_PASSWORD=myrootpass -p 3306:3306 mysql

# docker ps

# docker exec -it mysql01 /bin/bash
$ mysql -u root -p
mysql> show databases;

# docker start mysql01
# docker restart mysql01
# docker stop mysql01

# docker rm mysql01
# docker image rm mysql

# docker ps -a



사진첨부

  • Host’PC에서 mysql에 접속해보기
  • > mysql -h 192.168.1.104 -u user1 -p

사진첨부

도커 컨테이너 실습

  1. 기존에 설치된 모든 컨테이너와 이미지 정지 및 삭제
  2. 도커 기능을 사용해 nginx 검색
  3. nginx를 사용하여 설치
  4. nginx 포트로 접속하여 웹 서비스 열기

01. 기존에 설치된 모든 컨테이너와 이미지 정지 및 삭제

sudo docker stop 'sudo docker ps -a -q'
sudo docker rm 'sudo docker ps -a -q'
sudo docker rmi 'sudo docker images -q'



02. 도커 기능을 사용해 nginx 검색

sudo docker search nginx



03. nginx를 사용하여 설치

sudo docker pull nginx(:버전)
sudo docker inspect nginx
sudo docker run -d -p 80:80 --name nx01 nginx

sudo docker exec nx01 pwd
sudo docker exec ng01 ls
sudo docker exec ng01 ps
sudo docker exec -it nx01 /bin/bash



04. nginx 포트로 접속하여 웹 서비스 열기

http://192.168.1.104:80



사진첨부

도커 명령어

  • 포트 포워딩으로 톰캣 실행하기
sudo docker run -d --name tc -p 80:8080 tomcat
curl http://127.0.0.1:80



  • 컨테이너 내부 셸 실행
sudo docker exec -it tc /bin/bash



  • 컨테이너 로그 확인
sudo docker logs tc -- stdout, stderr



  • 호스트 및 컨테이너 간 파일 복사
sudo docker cp <path> <to container>:<path>
sudo docker cp <from container>:<path> <path>
sudo docker cp <from container>:<paht> <to container>:<path>



  • 임시 컨테이너 생성
sudo docker run -d -p 80:8080 --rm --name tc tomcat