반응형

pdftotext: Linux / UNIX Convert a PDF File To Text Format

Install pdftotext under RedHat / RHEL / Fedora / CentOS Linux

pdftotext is installed using poppler-utils package under various Linux distributions:

 

# yum install poppler-utils

 

 

OR use the following under Debian / Ubuntu Linux

 

$ sudo apt-get update -y

 

$ sudo apt-get install poppler-utils

 

pdftotext syntax

 

pdftotext {PDF-file} {text-file}

 

How do I convert a pdf to text?

Convert a pdf file called hp-manual.pdf to hp-manual.txt, enter:

 

$ pdftotext hp-manual.pdf hp-manual.txt

 

 

Specifies the first page 5 and last page 10 (select 5 to 10 pages) to convert, enter:

 

$ pdftotext -f 5 -l 10 hp-manual.pdf hp-manual.txt

 

 

Convert a pdf file protected and encrypted by owner password:

 

$ pdftotext -opw 'password' hp-manual.pdf hp-manual.txt

 

 

Convert a pdf file protected and encrypted by user password:

 

$ pdftotext -upw 'password' hp-manual.pdf hp-manual.txt

 

 

Sets the end-of-line convention to use for text output. You can set it to unix, dos or mac. For UNIX / Linux oses, enter:

 

$ pdftotext -eol unix hp-manual.pdf hp-manual.txt

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,
반응형

개요

docker hub에서 저장된 이미지를 하나하나 사용할 수 있지만 자신이 필요한 이미지를 만들기 위해서는 도커 이미지의 커스텀이 필요합니다.

이러한 도커 이미지를 커스텀하기 위한 Dockerfile에 대해서 알아보겠습니다.

Dockerfile

Dockerfile은 도커 이미지 설정 파일으로 내용대로 이미지를 생성해주는 도커 도구로 바로 테스트 프로젝트를 통해서 도커파일에 대해서 알아보겠습니다.

사전 작업

mkdir docker-node-app
cd docker-node-app

도커 파일 생성을 위해서 폴더를 하나 만들어줍니다.

package.json

{ 
 “name”: “docker_web_app”, 
 “version”: “1.0.0”, 
 “description”: “Node.js on Docker”, 
 “author”: “First Last <first.last@example.com>”, 
 “main”: “server.js”, 

“scripts”: { 
 “start”: “node server.js 
}, 
“dependencies”: { 
 “express”: “^4.16.1” 
 } 
}

테스트를 위해서 간단한 node.js 앱을 생성하겠습니다.

위와 같이 package.json을 만들고 npm install을 실행하여 앱을 만들어줍니다.

server.js

'use strict'; 

const express = require('express'); 

// 상수 
const PORT = 8080; 
const HOST = '0.0.0.0'; 

// 앱 
const app = express(); 
app.get('/', (req, res) => { 
  res.send('Hello World'); 
}); 

app.listen(PORT, HOST); 
console.log(`Running on http://${HOST}:${PORT}`);

웹서버 실행 확인을 위해서 server.js를 생성합니다.

Dockerfile 생성

​touch Dockerfile

Dockerfile

FROM node:12 

# 앱 디렉터리 생성 
WORKDIR /usr/src/app 

# 앱 의존성 설치 
COPY package*.json ./ 

RUN npm install 
# 프로덕션을 위한 코드를 빌드하는 경우 
# RUN npm ci —only=production 

# 앱 소스 추가 
COPY . . 

EXPOSE 8080 
CMD [ "node", "server.js" ]

위와 같이 Dockerfile을 생성하고 같은 폴더에 .dockerignore 파일을 만듭니다.

.dockerignore

node_modules
npm-debug.log

 

도커파일에 위와 같이 로컬 모듈과 디버깅 로그를 복사하는 것을 막아서 이미지 내에서 설치한 모듈을 덮어쓰지 않도록 해줍니다.

docker build -t <your username>/node-web-app .

Dockerfile이 있는 폴더에서 위와 같은 명령어로 도커 이미지를 생성합니다.

이미지 실행

-d로 이미지를 실행하면 분리 모드로 컨테이너를 실행해서 백그라운드에서 컨테이너가 돌아가도록 합니다. -p 플래그는 공개 포트를 컨테이너 내의 비공개 포트로 리다이렉트합니다. 앞에서 만든 이미지를 실행하세요.

docker run -p 49160:8080 -d <your username>/node-web-app

생성된 이미지를 실행해주면 웹서버가 실행된 것을 볼 수 있습니다.

​앱 로그 출력

# 컨테이너 아이디를 확인합니다
$ docker ps # 앱 로그를 출력합니다
$ docker logs <container id> # 예시 Running on http://localhost:8080

컨테이너 안에 들어가 봐야 한다면 exec 명령어를 사용할 수 있습니다.

# 컨테이너에 들어갑니다
$ docker exec -it <container id> /bin/bash

테스트

앱을 테스트하려면 Docker 매핑된 앱 포트를 확인합니다.

$ docker ps 

# 예시 
ID            IMAGE                                COMMAND    ...   PORTS 
ecce33b30ebf  /node-web-app:latest  npm start  ...   49160->8080

위 예시에서 Docker가 컨테이너 내의 8080 포트를 머신의 49160 포트로 매핑했습니다.

이제 curl로 앱을 호출할 수 있습니다.(필요하다면 sudo apt-get install curl로 설치하세요.)

$ curl -i localhost:49160 

HTTP/1.1 200 OK 
X-Powered-By: Express 
Content-Type: text/html; charset=utf-8 
Content-Length: 12 
ETag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0" 
Date: Mon, 13 Nov 2017 20:53:59 GMT 
Connection: keep-alive 

Hello world

 

Cheat Sheet

- FROM : 도커를 구성할 기반 이미지 설정

| Docker Documentation

- RUN : 이미지 생성 중 명령 실행

| Docker Documentation

- CMD : 컨테이너 시작 후 명령 실행

| Docker Documentation

- EXPOSE : 포트 노출

| Docker Documentation

- ENV : 환경 변수 설정

| Docker Documentation

- WORKDIR : 작업 폴더 설정

| Docker Documentation

- COPY : 지정된 폴더에 파일 복사

| Docker Documentation

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,
반응형

개요

도커에 대한 기본 명령어를 치트시트 형태로 보기 쉽게 정리합니다.

 

Containers

Lifecycle

- docker create : 도커 컨테이너 생성

docker create | Docker Documentation

- docker rename : 도커 컨테이너 이름 변경

docker rename | Docker Documentation

- docker run : 도커 컨테이너 시작

docker run | Docker Documentation

- docker rm : 도커 컨테이너 삭제

docker update | Docker Documentation

- docker update : 도커 컨테이너 업데이트

docker update | Docker Documentation

Start and Stop

- docker start : 도커 컨테이너 시작

docker update | Docker Documentation

- docker stop : 도커 컨테이너 정지

docker update | Docker Documentation

- docker restart : 도커 컨테이너 재시작

docker restart | Docker Documentation

- docker pause : 도커 컨테이너 정지

docker restart | Docker Documentation

- docker unpause : 정지된 도커 컨테이너 재시작

docker unpause | Docker Documentation

- docker kill : 도커 컨테이너 종료

docker kill | Docker Documentation

- docker exec : 도커 컨테이너 실행

docker exec | Docker Documentation

Info

- docker ps : 실행 중인 도커 컨테이너 확인

docker ps | Docker Documentation

- docker logs : 도커 컨테이너 로그 확인

docker logs | Docker Documentation

- docker stats : 도커 컨테이너 상태 확인

docker logs | Docker Documentation

Images

Lifecycle

- docker images : 도커 이미지 보기

docker images | Docker Documentation

- docker build : Dockerfile으로 구성된 도커 이미지 생성

docker build | Docker Documentation

- docker commit : 도커 컨테이너를 이미지로 변환

docker commit | Docker Documentation

- docker rmi : 도커 이미지 제거

docker rmi | Docker Documentation

Info

- docker history : 도커 이미지의 변화 내역 보기

docker history | Docker Documentation

- docker tag : 도커 이미지에 태그 설정

docker tag | Docker Documentation

Docker Repository

- docker login : 도커 저장소 로그인

docker login | Docker Documentation

- docker search : 도커 이미지 검색

docker search | Docker Documentation

- docker pull : 도커 이미지 가져오기

docker pull | Docker Documentation

- docker push : 도커 이미지 저장소에 저장

docker push | Docker Documentation

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,