2023.02.11 - [Web/Dev(ML)Ops] - ubuntu에서 도커 설치하기

 

ubuntu에서 도커 설치하기

$ sudo apt-get update apt-get update는 설치된 패키지를 업데이트하는 것이 아닌 설치 가능한 패키지 리스트를 업데이트 하는 것이다. repository 설정 $ sudo apt-get install ca-certificates curl gnupg lsb-release $ curl -f

dongineer.tistory.com

docker는 설치 됐다고 가정.

 

mysql 설치

원하는 버전을 8.0.30부분에 넣어준다. 기입하지 않으면 최신버전 이미지 가져옴.

$ sudo docker pull mysql:8.0.30

mysql 실행

$ sudo docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD={비밀번호} --name {컨테이너 이름} mysql:8.0.30 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • d : (detach) daemon으로 실행
    • 백그라운드에서 컨테이너 실행, 
  • p : HOST OS의 3306포트 : 컨테이너 내부 3306 포트
    • 호스트와 컨테이너 포트포워딩
  • e : MYSQL_ROOT_PASSWORD 설정.
  • name : 컨테이너 이름
  • mysql:8.0.30 : 이미지 이름

mysql 컨테이너 확인

$ sudo docker exec -it {컨테이너 이름} bash 
$ mysql -u root -p 

password : {설정한 MYSQL_ROOT_PASSWORD 입력}
  • -i, --interactive
    • 표준 입력(stdin)을 활성화하며, 컨테이너와 연결되어 있지 않더라도 표준 입력을 유지
    • 보통 이 옵션을 사용하여 Bash 에 명령을 입력
  • -t, --tty
    • TTY 모드(pseudo-TTY)를 사용
    • Bash를 사용하려면 이 옵션을 설정
    • 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셸이 표시되지 않음

 

Nginx 설치

$ sudo apt install Nginx 

certbot을 통한 인증서 발급

$ apt-get install python3-certbot-nginx 
$ certbot certonly --nginx -d {myDomainName} 

/etc/letsencrypt/live/{myDomainName}/

  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

4개의 파일이 존재하는지 확인

Nginx

$ touch /etc/nginx/conf.d/{원하는 이름}.conf
$ sudo vim /etc/nginx/conf.d/{원하는 이름}.conf
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;
}
$ nginx -t
$ sudo service nginx restart

 

$ sudo vim /etc/nginx/sites-available/{원하는 이름}.conf

server {
  listen 80; #80 port(HTTP)로 받을때
  server_name <도메인 주소>; # 없을경우 localhost
  return 301 https://<도메인 주소>$request_uri;
}
server {
  listen 443 ssl http;
  server_name <도메인 주소>;

  # ssl 인증서 적용하기
  ssl_certificate /etc/letsencrypt/live/<도메인 주소>/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/<도메인 주소>/privkey.pem;

  location / {
    proxy_pass http://localhost:3000;
  }

  location /api { # location 이후 특정 url을 처리하는 방법을 정의
    proxy_pass http://localhost:8081; # Request에 대해 어디로 리다이렉트하는지
    proxy_redirect off;
    charset utf-8;

    proxy_http_version 1.1;
  }
}

location, proxy_pass에서 각 마지막 위치의 슬래쉬 여부에 따라 꼬일 수 있으니 파악하고 사용하기.
~^ 등의 표현식 제공

sites-enabled에 심볼릭 링크 생성

$ sudo ln -s /etc/nginx/sites-available/{원하는 이름}.conf /etc/nginx/sites-enabled

테스트 후 실행

$ sudo nginx -t

$ sudo service nginx start
# 설정을 변경했다면 꼭 sudo service nginx restart를 진행해주자...

https://docs.openvidu.io/en/2.19.0/deployment/ce/on-premises/

 

OpenVidu Docs

OpenVidu is deployed in production as a set of Docker containers managed with Docker Compose. You can deploy OpenVidu in any modern Linux distribution. You need root permissions to deploy OpenVidu. The recommended folder to install OpenVidu is /opt. Every

docs.openvidu.io

{} 내부에 있는 부분은 상황에 맞게 적어주세요.

 

$ sudo su
$ cd /opt
$ curl https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/install_openvidu_latest.sh | bash

# latest를 원하지 않는다면 원하는 버전 latest자리에 기입
$ cd /opt/openvidu
$ vim .env

.env

 

DOMAIN_OR_PUBLIC_IP={myDomainName} #개인의 발급 받은 domain이 있다면 적어주자
OPENVIDU_SECRET={mySecret} #뭘 적든 자유
# CERTIFICATE_TYPE의 경우 letsencrypt를 통해 인증 받았다면 letsencrypt를 적고 밑에 이메일을 적어주자.
HTTP_PORT= {사용가능한 포트}
HTTPS_PORT= {사용가능한 포트}
포트 번호를 설정하는 부분이 있는데 사용가능한 포트를 기입하고 저장하자.
$ ./openvidu start

$ # = /opt/openvidu/openvidu start
실행 후 ctrl+c를 통해 백그라운드에서 실행할 수 있다. 

실행 후 브라우저에서 {기입했던 myDomanName}:{기입했던 사용가능한 포트}로 확인할 수 있다. 
$ ./openvidu stop

 

 

 

+ Recent posts