명령어를 통해 컴퓨터와 상호작용하는 것.
Git의 모든 기능을 사용할 수 있는 것과 같이 개발에 있어서는 많은 기능들이 CLI 기반으로 동작한다.
ls : 디렉토리 확인
touch 1.txt : 텍스트파일 만들기
ls -l : ls에 옵션주기
- 파일
d 디렉토리
사용자권한, 그룹권한, user가 아닌 다른사람들의 권한
pwd : 현재위치
mkdir : 디렉토리 만들기
cd : 디렉토리 이동
cd ../ : 상위 디렉토리로 이동
./ : 현재위치
cd /root : root로 이동
rm : 파일삭제, 디렉토리는 삭제불가
rm -r : 디렉토리 지우기
rm -rf : 다 지워버리기 (깃 지울때 많이 사용)
리눅스 컨테이너 기반
리눅스 컨테이너 : 필요한 라이브러리와 어플리케이션을 모아서 마치 별도의 서버처럼 구성한 것
docker 사용이유
1. 남들이 만들어놓은거 사용하려고
2. 배포하려는 목적
docker image : 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것.
docker container : image를 실행한 것.
docker CLI
docker image pull docker/whalesay:latest : docker/whalesay:latest라는 이미지를 다운로드
docker images : 이미지확인
docker container run [OPTION] IMAGE [COMMAND] [ARG..] : image 실행
-------------------
[OPTION]
--name : container 이름 지정
-p : port번호
-it : 실행 후 무언가를 입력해야하는 경우
--rm : 일회성으로 실행
-------------------
docker container ps -a : 모든 container 확인 / -a없으면 실행중인 container만
docker container stop
docker container restart
docker image rm [IMAGE] : 이미지 삭제
docker container rm [CONTAINER] :container 삭제
docker exec -it {컨테이너 이름} /bin/bash : 컨테이너 접속
winpty docker run --rm -it aibcontents/n312_part2:1.0 ls : 이미지 디렉토리 확인
env : 환경변수 확인
docker container run --name my_web --rm -p 818:80 httpd : httpd image를 통해 서버생성
docker container cp ./ my_web:/usr/local/apache2/htdocs/ : 앞의 경로파일들을 뒤의 경로에 복사해줌
docker container commit my_web my_pacman:1.0 : 지정한 container를 새로운 image로 저장
dockerfile은 이미지를 위한 설명서
dockerfile을 빌드하면 이미지가 된다.
ex. pacman 이미지를 생성
FROM httpd:2.4 # 베이스 이미지를 httpd:2.4 로 사용
COPY ./ /usr/local/apache2/htdocs/ # 호스트의 현재경로에 있는 파일을 생성할 이미지 /usr/local/apache2/htdocs/ 에 복사
# --tag 는 name:tag 형식으로 이미지를 생성
# 지정한 경로에 있는 Dockerfile 을 찾아서 빌드
$ docker build --tag my_pacman:2.0 .
$ docker run --name my_web3 -p 901:80 my_pacman:2.0