전체 글 327

[Docker] Container의 OS vs VM의 OS

docker를 사용하다가 생긴 의문. - Container 에서도 Guest OS를 사용하는데? docker는 VM을 사용할 때 생기는 쓸데없는 자원낭비(OS의 오버헤드) 를 줄이는데 획기적이다. docker를 쓰는 가장 큰 이유이다. docker의 기본 구조를 생각해 보면 아래와 같다. docker는 기본적으로 linux 위에서만 돌아간다. Winodws와 MacOS 용 docker를 설치하면 경량화된 linux 머신이 가상화되어 구동되고, 그 위에서 docker가 구동되는 것이다. docker를 사용하다보니 의문이 생긴다. VM을 사용하면 OS까지 올려서 쓰기 때문에 오버헤드 때문에 docker를 사용하는 것인데, APP을 구동하기 위한 container 에도 OS가 설치되어있고, 실제로 Ubuntu..

Docker 2021.09.25

[Docker] 로컬 프로젝트 폴더와 컨테이너 홈디렉토리 동기화

1. 볼륨생성 방법 (Docker 에서 권장하는 방법) 2. 바운드마운트 (로컬개발환경 폴더 동기화시 편리) 두 가지 방법 중에 바운드마운트로 로컬 개발환경을 세팅 해보자. D:\docker 폴더 안에 프로젝트들을 넣을 계획이라면 -v 옵션과 : 을 사이에 두고 [로컬개발폴더경로]:[컨테이너홈디렉토리경로] 형식으로 사용한다 $ docker run -it -d -p 80:80 --privileged -v D:\docker:/home/ --name laravel8 dockingmosei:laravel8:latest /sbin/init $ docker exec -it laravel8 bash laravel8 컨테이너를 생성하고 컨테이너의 /home 디렉토리를 로컬의 D:\docker 폴더와 마운트 시킨다. 주..

Docker 2021.09.24

[Docker] 나의 컨테이너 백업하기

docker container 로 서버 세팅 등 작업을 다 해놨다면 그대로 이미지로 떠서 dockerhub 레포지토리에 업로드 해놓고 나중에 다른환경에서도 바로 pull 받아서 사용할 수 있다. git과 비슷하게 생각하면 된다. 1. dockerhub에서 해당 이미지를 관리할 레포지토리 생성 2. 컨테이너를 commit 해서 hub에 올릴 image를 생성 3. 생성한 image를 dockerhub 로 push 4. image를 pull 받아서 사용 1. dockerhub에서 해당 이미지를 관리할 레포지토리 생성 https://hub.docker.com/repositories Docker Hub hub.docker.com 도커허브에 계정을 생성하고 Repositories 메뉴 -> Create Repos..

Docker 2021.09.24

[Docker] 컨테이너에서 systemctl 사용 문제

컨테이너를 재시작 하게 되면 웹서버와 php-fpm 등 데몬을 계속 실행해주기 귀찮아서 systemctl enable로 서비스 등록을 하려고 하는데 Failed to connect to bus: No such file or directory 위와 같은 오류가 난다. 방법이 있긴 있어서 해봤다. # 현재 컨테이너를 커밋해서 새로운 이미지 생성 $ docker commit container new_image # --privileged 와 /sbin/init 으로 컨테이너를 생성해서 systemctl 접근권한을 준다. # 기본적으로 docker는 systemctl 접근권한을 주지 않기 때문 $ docker run -it -d -p 80:80 --privileged --name new_conteiner new_..

Docker 2021.09.24

[Linux] 버전 및 릴리즈 정보 확인 방법

1. 간단하게 버전만 확인 $ cat /etc/issue Ubuntu 20.04.3 LTS $ uname -m x86_64 //64비트 i686 //32비트 2. 릴리즈 정보 확인 $ cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS" NAME="Ubuntu" VERSION="20.04.3 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.3 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL..

Linux 2021.09.24

[Docker] 기존 컨테이너의 포트 변경하기

기존에 -p 81:80 으로 컨테이너를 생성했는데 이 컨테이너의 포트를 80:80 으로 변경하고 싶을때 기존 컨테이너의 포트 변경은 할수없는듯 하다.. 아직 방법을 못찾았고, 대신 commit 으로 기존 컨테이너를 그대로 복사해서 포트를 새로 주입해주는 방법이 있다. // 기존 컨테이너명 c1을 c1_copy로 commit 해둠 docker commit c1 c1_copy // 포트를 새로 넣어서 c2 컨테이너 생성 docker run -d -it -p 80:80 --name c2 c1_copy bash 끝.

Docker 2021.09.23

[Docker] Ubuntu 컨테이너에 PHP8 + Nginx + Laravel8 최신환경 세팅하기

1. 도커에서 ubuntu 이미지와 컨테이너 띄우기 2. 컨테이너에 개발환경 세팅 - PHP8.0 - Nginx - Laravel8 3. 컨테이너와 로컬 개발환경 연동하기 1. 도커에서 ubuntu 이미지와 컨테이너 띄우기 docker pull ubuntu docker run -it -p 80:80 --name mycontainer ubuntu bash 2. 컨테이너에 개발환경 세팅 - apt 관련 업데이트 및 php8 설치 # apt 최신버전 리스트업 apt update # apt 최신버전 설치 apt upgrade # 소프트웨어 관리 패키지 설치 apt install software-properties-common # 최신버전 설치를 위한 별도의 레포지토리 추가 add-apt-repository pp..

Docker 2021.09.23

[Docker] Container 접속과 종료 시 주의할 점

접속방법 1. 컨테이너를 생성함과 동시에 shell 접속 winpty docker run -it -p 80:80 --name mycontainer ubuntu bash ubuntu 이미지를 mycontainer라는 이름의 컨테이너로 실행시킴과 동시에 shell 접속이 된다. 위 처럼 접속 시에 컨테이너를 빠져나올 때 exit 명령어를 사용한다면, 컨테이너를 빠져나옴과 동시에 컨테이너가 종료되니 조심해야 함 컨테이너를 종료시키지 않고 빠져나오려면 Ctrl을 누른상태에서 P와 Q를 한번씩 눌러주면 된다. CTRL+P,Q 2. 컨테이너를 생성하고나서 shell로 접속 docker run -p 80:80 --name mycontainer ubuntu 컨테이너 접속 winpty docker exec -it myc..

Docker 2021.09.17

[Docker] Container 접속 시 TTY 에러

docker exec -it mycontainer bash 위 처럼 컨테이너 접속 시 the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' 위 처럼 에러가 난다면 git 설치할때 터미널 설정을 Use MinTTY 로 선택 했기 때문이다. winpty docker exec -it mycontainer bash 위 처럼 winpty 를 붙이면 된다. 또는 git설치 시 Use Windows defailt console window 로 선택 한다면 git bash에서도 위 명령어 사용 가능

Docker 2021.09.17

[Vue.js] vue 파일 변경 시 자동 컴파일 하는 법

vue 파일을 수정하게 되면 매번 아래 명령어로 컴파일을 해야 한다. // 개발환경에서 js/css 무압축 npm run dev // 운영환경에서 js/css 압축 npm run production 이런 귀찮음을 해결하기 위해 watch 라는 기능을 제공 npm run watch watch를 켜놓은 상태에서 vue를 수정하게 되면, watch가 변경된 파일이 있는지 계속 지켜보고 있다가 파일 변경이 감지되면 자동으로 컴파일 함

Vue.js 2021.09.09

[Vue.js] Laravel 을 이용한 S3 파일업로드

vue 파일첨부 [파일 삭제] {{file.file_name}} 1. 실제 파일업로드 input 은 display:none으로 숨기고, 2. 커스텀 button 에 label을 씌워서 '파일첨부' 텍스트 클릭 시 파일업로드 창이 뜨게 구현 script 1. myFiles 라는 변수를 생성해놓고, 2. http 요청을 할 header와 formdata 들을 세팅 3. 업로드가 끝난 후 v-for 에 사용되는 myFiles 를 업데이트 laravel route : Route::post('/profile/upload', 'UserController@myFileUpload'); controller : 실제 구현시에 로직은 service로 빼는것이 유지보수에 좋지만, 지금은 흐름만 적는 것이므로 controlle..

Vue.js 2021.09.08
반응형