프로젝트를 진행하면서 서버를 구축해야하는데, 이번 기회에 명령어를 사용하면서 하나씩 정리해보고자 합니다.
aws에서 서버를 대여하여 사용하고 있으며
서버에서 사용자 계정을 하나 만들고
사용자의 기본 폴더에서 volumes를 공유한 docker container를 docker compose를 통해 설치할 예정입니다.
그리고 최종적으로 공유된 volumes를 git에 push하는 활동까지 진행할 계획입니다.
- 존재하는 패키지의 최신버전이 있는지 모두 탐색
sudo apt-get update
*apt, apt-get의 차이는 거의 없음. 그냥 apt-get을 쓰자. 굳이 말하자면 차이가 있기는 한데, apt-get이 더 안정적이다.
- 존재하는 패키지를 최신버전으로 업그레이드
sudo apt-get upgrade
sudo apt-get dist-upgrade # 설치하는 패키지의 의존성도 검사
*의존성 검사 -> upgrade와 달리 dist-upgrade는 해당 패키지에 의존적인 추가 패키지도 설치
- 서버 기준시간 변경
sudo dpkg-reconfigure tzdata # Asia-Seoul로 변경
-root 비밀번호 설정
sudo passwd root
- hostname 변경
vi /etc/hostname # 파일 내용이 hostname
* 파일 내용을 원하는 이름으로 바꾸면 됨
sudo hostname -F /etc/hostname # 변경사항 적용
- ssh 로그인 시 root 권한
https://hwanine.github.io/vs%20code/VSCode2/
- 네트워크 관련 tools
sudo apt-get install net-tools
*ifconfig, netstat와 같은 네트워크 명령어를 사용할 수 있음
- unzip 설치
sudo apt-get install unzip
* zip파일 압축을 풀 수 있음
- 사용자 추가
sudo adduser <username>
*<username>에 추가할 사용자 이름을 입력하면 됨. 이후 PW를 물어보고 추가 정보를 물어보니 적당히 입력
- docker 설치
# 필요한 패키지 설치
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Docker GPG key 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
# OK 결과값이 나옴
* apt-transport-https: 패키지 관리자가 http를 통해 데이터 및 패키지에 접근할 수 있도록 함
* ca-certificates: 디지털 서명
* curl: 사이트에서 데이터 통신을 위해 사용
* gnupg: GNU Privacy Guard, 신뢰할 수 없는곳에 파일을 배포하기 위한 서명, 증명, 암호화, 해독을 위해 사용
* lsb-release: Linux Standard Base-release: 설치한 패키지의 정보를 자세하기 보기 위해 사용
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
apt-cache policy docker-ce # docker-ce라는 패키지가 설치되어있는지 확인
sudo apt install docker-ce
sudo systemctl status docker # docker 서비스의 상태를 확인
# docker 실행 확인과정
docker pull hello-world # hello-world image 받아오기
docker images
docker run hello-world # hello-world image 컨테이너에 올리고 실행하기
docker ps -a
docker rm <container id> # <container-id>에 해당하는 컨테이너 삭제하기
docker rm images
docker rmi hello-world # hello-world image 삭제하기
* 참고사이트
https://roseline124.github.io/kuberdocker/2019/07/17/docker-study02.html
https://blog.dalso.org/linux/ubuntu-20-04-lts/13118
https://docs.docker.com/engine/install/ubuntu/
아래는 docker-compose 설치하는 내용이지만, 열심히 yml 작성해서 올렸는데, command 부분이 좀 말썽이라서 실제로 올렸을 때에는 사용하지 않았습니다. 미래에 사용할거고, 언젠가 쓰겠지 하는분은 받으셔도 좋은데 이후 게시글에서는 따로 언급이...없을.. 예정입니다 ㅎ
- docker-compose 설치
# docker-compose 설치 - 아래 깃 링크에서 버전 확인하고 {version!!!}대신 넣기
sudo curl -L "https://github.com/docker/compose/releases/download/{version!!!}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 권한설정
sudo chmod +x /usr/local/bin/docker-compose
# Path 에러 방지
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 설치된 docker-compose 버전확인
docker-compose --version
* https://github.com/docker/compose/releases/
* https://docs.docker.com/compose/install/
이정도면 기본적인 서버 설정은 끝난 것 같고, 이제 다음 게시글에서 docker-compose.yml 파일을 만들어서 container를 올려보도록 하겠습니다.
'Server' 카테고리의 다른 글
서버에 올린 Docker Container 정리 (0) | 2021.07.27 |
---|---|
Docker run 명령어 정리 (1) | 2021.07.27 |