'docker run' with options.

이동규 (Justin)·2023년 5월 11일
0

도커, 도커.

목록 보기
3/3
post-custom-banner

아래 명령어를 뜯어보자.


docker run -p 5432:5432 -d \
	-e POSTGRES_PASSWORD=postgres \
    -e POSTGRES_USER=postgres \
    -e POSTGRES_DB=stripe-example \
    -v pgdata:/var/lib/postgresql/data \
    postgres
  1. docker run

Create and run a new container from an image.

이미지에서 새로운 컨테이너를 생성하고 실행하는 명령어로,
docker container run 의 alias 이다.

  1. -p 5432:5432

Publish a container's port(s) to the host

컨테이너의 포트를 호스트의 포트로 'publish' 한다고 한다.

  1. -d

Run container in background and print container ID

'--detach' 의 alias 이다.
'run container in background' 라는 말에서, 그럼 백그라운드에서 실행되지 않기도 한다는 말인가? 라는 의문이 들어 찾아보았다.

그렇다. -d 옵션을 주지 않고 실행한다면 해당 터미널 자체가 컨테이너 인스턴스로 사용되기 때문에 더 이상 추가적인 명령어를 입력할 수 없게되고, 해당 터미널을 종료하면 컨테이너의 실행도 종료되게 된다.

  1. -e POSTGRES_PASSWORD=postgres

Set environment variables

환경변수를 설정할 수 있도록 하는 옵션이다.

POSTGRES_PASSWORD

This environment variable is required for you to use the PostgreSQL image. It must not be empty or undefined. This environment variable sets the superuse password for PostgreSQL.

The default superuser is defined by the POSTGRES_USER environment variable.

superuser의 비밀번호를 설정하는 환경변수이다.
PGPASSWORD라는 환경변수와는 별개라고 하니 주의.

  1. -e POSTGRES_USER=postgres

POSTGRES_USER

This optional environment variable is used in conjunction with POSTGRES_PASSWORD to set a user and its password.

This variable will create the specified user with superuser power and a database with the same name.

superuser 권한을 가진 user를 생성함과 동시에 동일한 이름의 데이터베이스를 생성하는데에 사용된다. 명시하지 않으면 postgres 가 기본으로 사용된다고 한다.

  1. -e POSTGRES_DB=stripe-example

This optional environment variable can be used to define a different name for the default database that is created when the image is first started.

  1. -v pgdata:/var/lib/postgresql/data

Bind mount a volume

: 을 기준으로 앞쪽에는 호스트의 경로, 뒷쪽에는 컨테이너의 경로를 의미한다. 호스트 컴퓨터 파일시스템의 특정 경로를 컨테이너 파일시스템의 특정 경로로 마운트 시켜준다.

마운트와 볼륨에 대해서는 따로 더 알아보자.

  1. postgres

postgres 이미지를 사용하겠다는 의미이다.


Docker PostgreSQL Tutorial with Persistent Data - Ben Awad, Youtube

docker run 커맨드 사용법 - Dale Seo, daleseo.com

Postgres Official Image - Docker Hub

profile
Frontend Developer, JamStack, Ethereum
post-custom-banner

0개의 댓글