Docker 14

[Docker] docker에 selenium 설치

로컬 폴더구조 selenium/ - docker-compose/ - selenium-local/ - selenium/ - Dockerfile docker-compose.yml - selenium-dev/ - selenium/ - Dockerfile docker-compose.yml index.py local과 dev 서버를 분리하여 compose 를 생성해서, local과 dev의 동작을 분리한다. 아래는 로컬 기준 파일임 Dockerfile FROM ubuntu # python 설치 및 셀레늄 사용 시 필요한 프로그램 설치 RUN apt-get update && apt-get install -y \ wget \ vim \ xvfb \ curl \ unzip \ python3 \ python3-pip \..

Docker 2023.05.10

[Docker] git clone으로 laravel 프로젝트 다운받을 때 체크

docker run -it -d -p 80:80 --privileged --name laravel -v C:\docker\laravel:/home/laravel dockingmosei/laravel8:latest 위 형식으로 컨테이너를 생성하게 되면 C:\docker\laravel 폴더와 /home/laravel 폴더가 동기화 된다. 그러면 컨테이너가 실행될때 C:\docker\laravel 폴더 내용이 컨테이너 안의 /home/laravel에 덮어씌워지게 된다. 만약 C:\docker\laravel 이 비어있을 때는 docker 프로젝트에 라라벨 내용이 있더라도 모두 삭제 된다. 그래서 로컬에 git clone 으로 우선 프로젝트를 세팅 해놓은 후에 컨테이너를 실행해야 한다. 이 때 체크할 점. 1. ..

Docker 2021.10.02

[Docker] Intellij + PHP8 + Xdebug3 설정

docker 환경에서 intellij + php8 + xdebug3 설정을 해보자 1. xdebug 설치 2. xdebug 세팅 3. intellij 세팅 1. xdebug extension 설치 # xdebug3 설치 $ apt install php8.0-xdebug # 설치된 모듈 확인 $ php -m # xdebug 버전 확인 $ php --version PHP 8.0.10 (cli) (built: Aug 26 2021 15:50:07) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.10, Copyright (c) Zend Technologies with Zend OPcache v8.0.10, Copyright (c), by Zend Technolog..

Docker 2021.09.27

[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

[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
반응형