목록Backend/Docker (14)
개발 무지렁이

𐂂 종속성 및 소스코드가 변경되지 않은 경우, 새 실행 인스턴스를 생성할 필요가 없다. ⚠️ docker run [이미지ID]: 이미지를 기반으로 새 컨테이너를 생성 및 실행 이미지가 변경되지 않은 경우, 새 컨테이너를 생성할 필요가 없다. 기존 컨테이너를 다시 시작하면 된다. docker start [컨테이너NAME] ⚠️ docker run -it [이미지ID]로 생성한 컨테이너는, 이후 docker start -i 로 재시작할 때 기본적으로 터미널을 노출하는 mode로 재시작된다. 𐁍 attached mode와 detached mode 🦁 attached mode (연결모드): 컨테이너를 foreground에서 실행, 실행 중인 컨테이너의 출력결과(로그)를 수신하겠다. 🦁 detached mode ..

𐂂 도커허브(Docker Hub) docker run [이미지NAME] : 이미지의 실행 인스턴스(= 컨테이너)를 만든다. 도커허브에서 이미 존재하는 이미지 (🏅 Docker Official Image)를 사용할 수 있다. 즉, 해당 이미지가 내 로컬에 없으면, 도커허브에서 자동으로 이미지를 가져온다. (이미지는 컨테이너에 필요한 모든 논리와 코드, 환경을 보관하고 있다.) 그렇게 가져와서 실제로 실행중인 이미지 인스턴스를 '컨테이너'라 부르는데, 컨테이너는 주변환경과 격리되어 있고, 격리*되어 실행된다. ⚠️ 컨테이너 내부에서 실행 중인 인터렉티브 쉘이 있다고 해서, 이 쉘이 사용자에게 노출된다는 의미가 아니다.(격리되어 있기 때문에) (ex. 노드에 의해 노출된 인터렉티브 쉘은 컨테이너에 의해 자동으..

🌝. 로컬PC환경 DEV TEST 🌚. 운영서버환경 TEST PROD 로컬PC환경에서나 운영서버환경에서나 TEST DB연결정보는 똑같아야 한다 🌱. 스프링부트 앱 + 🪛. DB 연결 정보 ⛑️. 로컬pc에서의 DB 사전작업 XAMPP -> shell mysql -u root #어디서든 접근가능, 노출되면 x GRANT ALL PRIVILEGES ON *.* TO woo@`%` IDENTIFIED BY '1234'; #내 PC에서만 접근 가능 GRANT ALL PRIVILEGES ON *.* TO woolocal@127.0.0.1 IDENTIFIED BY '1234'; #내 도커 호스트에서만 접근 가능 GRANT ALL PRIVILEGES ON *.* TO woolocal@17..

스프링부트 프로젝트 생성 🌱 [HomeController.java] @Controller public class HomeController { @RequestMapping("/") @ResponseBody public String showMain() { return "Hello, SB"; } } [application.yml] spring: profiles: active: dev (개발용 ⌨️) [application-dev.yml] server: port: 8020 (배포용 🎲) [application-prod.yml] 스프링부트 프로젝트 in GitHub Repository, 운영서버에서 git pull 💻. in 운영서버(CentOS) sudo yum install git -y 🐱 sudo yum ..

My 이미지 제작 like 밀키트 📌. host os에 nodejs 설치 (in /docker_projects/node_1/project) [host os] ex. sudo yum install nodejs -y npm install express (❓express: nodejs로 만들어진 웹서버) vim index.js const express = require("express"); const port = "8080"; const app = express(); app.get("/", (req, res) => { res.send("Hello Node"); }); app.listen(port); console.log(`server running on ${port}`); node index.js => ser..

Volume(볼륨) 바깥쪽 폴더(host os의 폴더)와 안쪽 폴더(docker의 container의 폴더)를 매핑시킬 수 있다. (안쪽 폴더에 있는 내용을 영속적이고, 안전하게 보관할 수 있다.) docker run \ -d \ -p 8031:80 \ --name=nginx_1 \ --rm \ -v /docker_projects/nginx_1/volumes/usr/share/nginx/html:/usr/share/nginx/html \ nginx # \을 써주면 명령어 중간에 Enter가 가능하다 ❗. -v(볼륨 옵션): host os폴더:docker container 폴더 매핑 매핑시킨 host os 폴더의 index.html 파일 만들기 # docker_projects 폴더 이하의 모든 파일들의 소..