We will find a way, we always have.

-interstellar

분류 전체보기 305

[도커] 파일 복사와 이름 지정

도커로 파일을 복사하려면 다음과 같은 명령어를 입력한다. docker ps docker cp [폴더명]/. [name]:/[파일명] 파일명은 ps 를 통해 얻을 수 있다. 그리고 카피할 파일은 로컬 파일 안에 있어야만 한다. 컨테이너를 실행시키면 자동으로 이름이 할당되는데 (like 직박구리) 이 이름을 지정하려면 다음과 같은 명령어를 사용하면 된다. docker run -p 3000:80 -d --rm --name [NAME] [ID] 이제 실행시키고 중지시킬 때 조금 수월해졌다. 도커 파일은 name:tag 형식으로 되어있는데 tag 부분에 버전등을 지정할 수 있다. FROM node:12 # node 버전 12 docker build -t [NAME]:[TAG] 이런식으로 태그를 지정할 수도 있다.

DevOps/도커 2022.08.19

[도커] 이미지 검사

생성한 이미지를 이제 확인해보자 docker images 해당 명령어 입력시 이미지ID, 사이즈 등등 이미지에 대한 정보가 출력된다. 이제 이런 이미지들의 정보를 파악하고 싶다면 아래의 명령어를 사용해주면 된다. docker image inspect [IMAGE ID] 도커의 버전, 사용중인 운영체제, 풀ID 등, 쌓인 레이어 등등 이미지가 어떻게 구성되어 있는지 확인할 수 있다.

DevOps/도커 2022.08.17

[프로젝트] 개요. 시작 계기

우선!! 어떤 프로젝트를 진행중인가하면.. 게시판에 새 게시물이 올라올 때 트윗을 작성하는 알림 봇을 만드는 것이다. 어떤 게시판인가하면 바로 제이와이피가 운영하는 Fans 라는 사이트의 게시판이다. 게시판이 좀 구리다 디자인도 좀 구리고 그냥 딱 게시판 기능에만 충실한 약간 개발 처음 배우는 분들이 만들어볼법한 느낌의 게시판이다. 이 사이트의 게시판에는 공방신청이 올라오기도 하고 공식 팬들만을 위한 사진이 올라오기도 한다. 디자인도 별로고 나갈때마다 자동 로그아웃되고 튼 문제가 많은 사이트지만 가장 큰 문제점은 알림이 안온다는 것이다!!! 공방 신청을 받기 시작하고 알림을 안주면 어쩌자는거냐거...ㅜ 나 말고도 알림이 안와서 불편해하는 팬들이 다수였다. (아마 원스, 스키즈, 믿지, 엔써 합치면 불편해..

Ploject 2022.08.15

[도커] 이미지 & 컨테이너 삭제

docker ps -a 하면 많은 컨테이너가 뜰 것이다. 이제 이것들이 나타자니 않게 깔끔히 지워보자. docker images 를 통해 설치된 이미지를 확인하고 docker rmi [IMAGE ID] 를 통해 삭제한다. 실행되고 있는 이미지는 삭제할 수 없다. 만약 실행되고 있지 않은 이미지를 전부 지우고 싶다면 docker image prune 을 사용하면 된다. 공백으로 여러 아이디를 동시에 입력하여 지울 수 있다. 추가로 --rm을 사용하여 컨테이너가 중지되면 자동으로 제거할 수도 있다. 매우 유용하니 자주 사용하길 docker run -p 3000:80 -d --rm [IMAGE ID]

DevOps/도커 2022.08.12

[도커] 파이썬과 인터렉티브

도커와 파이썬을 연결해보는 실습을 하였다. 그동안 노드로만 하다가 파이썬을 보니 매일 중국어 듣다가 한국어 들은 것처럼 매우 기뻤다...ㅎ from random import randint min_ = int(input('please enter min ')) max_ = int(input('please enter max ')) if (max_ < min_): print('Invalind input - shuttind down') else: rnd_num = randint(min_, max_) print(rnd_num) 이제 파이썬을 도커화해보자. FROM python WORKDIR /app COPY . /app CMD ["python", "rng.py"] 도커 터미널에서 이미지 빌드하고 컨테이너를 실행시킨..

DevOps/도커 2022.08.12

[도커] Attached 모드 & Detached 모드

docker --help - 사용가능한 명령어들을 설명해줌 docker ps - 현재 실행중인 컨테이너 리스트를 확인할 수 있음 docker ps -a - 더 이상 실행되지 않는 중지된 컨테이너 포함하여 보여줌 docker start [컨테이너 name] - 중지된 즉 더이상 실행되지 않은 컨테이너 다시 실행시킴. 변경사항이 없어 다시 이미지부터 빌드할 필요가 없을 때 ps -a을 사용해 이름 찾아 사용 run과 다르게 터미널에서 우리를 차단하지는 않음 start로 시작하는 경우 Detached 모드 디폴트 (터미널 차단 X) run으로 시작하는 경우 Attached 모드 디폴트 (터미널 차단 O) 터미널이 차단됐다는 이야기는 지들이 할말이 있다는 얘기 name 앞에 -d 를 붙여 Detached 모드로..

DevOps/도커 2022.08.12

[도커] 이미지와 컨테이너

이미지는 읽기/쓰기 엑세스 권한이 있는 인스턴스를 실행하는 컨테이너의 "블루프린트"이다. 이미지를 통해 컨테이너가 서로 독립적으로 존재함과 동시에 동일한 이미지를 기반으로 할 수 있다. 컨테이너는 이미지를 기반으로 하는 격리된 소프트웨어 유닛이다. 이미지의 실행중인 인스턴스이다. 도커 실습 코드 # 자체 명령어 자체 이미지를 빌드할 때 실행할 명령어 # 이미지 설정을 위한 도커의 명령 # 이미지를 기반으로 컨테이너 실행 FROM node # 모든 수행을 app 파일 안에서 진행하라는 의미 WORKDIR /app # 첫번째 . 모든 파일 의미, 두번째 .는 그 파일을 저장해야하는 이미지 내부의 경로 # Host file system image/ container file system # app에 저장됨 만..

DevOps/도커 2022.08.12

[도커] 도커 첫 발걸음

도커 설치를 위해 WSL 2와 우분투를 추가적으로 설치했다. 운영체제 마다 또 윈도우 버전 마다 설치 방법이 달랐는데,, 도커의 장점 중 하나가 환경과 버전차이로 인한 문제해결이라고 알고있는데 이미 도커 설치부터 번거로웠다..ㅎ 도커 실습 코드 # app.mjs import express from 'express'; import connectToDatabase from './helpers.mjs' const app = express(); app.get('/', (req, res) => { res.send('Hi there!'); }); await connectToDatabase(); app.listen(3000); 아래와 같은 명령어를 도커 터미널에서 실행할 수 있다. 반드시 도커파일이 있는 경로인 터미..

DevOps/도커 2022.08.12

[백준] 1865번: 웜홀 - 파이썬

🔈 문제 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지점에서 출발을 하여서 시간여행을 하기 시작하여 다시 출발을 하였던 위치로 돌아왔을 때, 출발을 하였을 때보다 시간이 되돌아가 있는 경우가 있는지 없는지 궁금해졌다. 여러분은 백준이를 도와 이런 일이 가능한지 불가능한지 구하는 프로그램을 작성하여라. 📝입력 첫..

[알고리즘] 데이크스트라 최단 경로 알고리즘

데이크스트라 알고리즘 (Dijkstra Algorithm) 최단 경로 알고리즘은 주어진 그래프에서 가장 빨리 도달할 수 있는 길을 찾는 알고리즘이다. 노드를 연결하는 간선에 비용 있어 간선의 갯수가 같다고 하여도 실제 이동시간은 다를 수 있기에 그런 것들을 잘 체크해주어야 한다. 데이크스트라 알고리즘은 음의 간선이 없을 때 정상적으로 작동한다. 음의 간선이란 0보다 작은 값을 가지는 간선을 의미하는데, 현실 세계에서 음의 간선이란 존재할 수 없다. 때문에 GPS 소프트웨어의 기본 알고리즘으로 채택되기도 한다. 데이크스트라 알고리즘의 동작 원리는 인접한 노드중에 가장 비용이 적은 노드를 선택하여 움직이기에 그리디 알고리즘으로 분류된다. 출발 노드를 설정한다. 최단 거리 테이블을 초기화 한다. 방문하지 않은..