docker run

Doosan published on
1 min, 69 words

Categories: Docker

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

이미지를 pull하고, 새 container를 만들고, 실행까지 한 번에 처리한다.

자주 사용하는 옵션은 다음과 같다.

Option
--namecontainer 이름
-ddetached mode로 백그라운드 실행
-pport publish
-vvolume mount
-eenvironment variable
-iinteractive mode
-ttty 할당
-itinteractive + tty
--link다른 container와 연결

예제:

docker run -d `
--name mysqlserver `        # 컨테이너 이름은 mysqlserver
-e 'ACCEPT_EULA=Y' `        # sqlserver의 환경변수, docker의 환경변수 아님
-e 'SA_PASSWORD=Pa55w@rd' ` # sa 의 비밀번호
-e 'MSSQL_PID=Express' `	#이것도 sqlserver의 환경변수, MSSQL_PID 의 기본 값은 'Developer'
-p 1433:1433 `              #서버의 1433포트를 컨테이너의 1433 로 연결. 호스트포트:컨테이너포트
-v c:\Users\Doosan\sqlserver\data:/var/opt/mssql/data ` #호스트 파일디렉토리를 컨테이너에 마운트
-v c:\Users\Doosan\sqlserver\log:/var/opt/mssql/log `
-v c:\Users\Doosan\sqlserver\secrets:/var/opt/mssql/secrets `
mcr.microsoft.com/mssql/server:2019-latest  # 사용할 이미지

각 줄 끝에 backtick을 붙인 것은 긴 command를 여러 줄로 나누어 읽기 쉽게 만들기 위해서다. Docker 옵션의 일부가 아니라 PowerShell의 줄 이어쓰기 문법이다.

docker run -d `
--name mymongo `
-p 27017:27017 `
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin `
-e MONGO_INITDB_ROOT_PASSWORD=secret `
-v c:\Users\Doosan\mongo:/data/db `
docker run -d `
--name mypostgres `
-p 5432:5432 `
-e POSTGRES_USER=doosan ` #생략하면 postgres로 기본유저생성
-e POSTGRES_PASSWORD=postgres `
-e PGDATA=/var/lib/postgresql/data/pgdata `
-e tz=Asia/Seoul `
-v c:\Users\Doosan\postgres:/var/lib/postgresql/data `
postgres