Docker AND Kubernetes
로그인
- 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
사진첨부
도커 컨테이너 실습
- 기존에 설치된 모든 컨테이너와 이미지 정지 및 삭제
- 도커 기능을 사용해 nginx 검색
- nginx를 사용하여 설치
- 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