https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
위의 블로그에서 내용을 가져왔으며, 더 자세한 설명들이 포함되어 있습니다.
컨테이너 실행하기
컨테이너를 실행하는 명령어는 다음과 같다.
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
자주 사용하는 옵션
- -d : detached mode 흔히 말하는 백그라운드 모드
- -p : 호스트와 컨테이너의 포트를 연결(포워딩)
- -v : 호스트와 컨테이너의 디렉토리를 연결 (마운트)
- -e : 컨테이너 내에서 사용할 환경변수 설정
- --name : 컨테이너 이름 설정
- --rm : 프로세스 종료시 컨테이너 자동 제거
- -it : -i 와 -t 를 동시에 사용한 것으로 터미널 입력을 위한 옵션(컨테이너를 종료하지 않은 채로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용)
- -link : 컨테이너 연결 [컨테이너명:별칭]
ubuntu 16.04 container
ubuntu 16.04 컨테이너 생성하고 내부 들어가기
$ docker run --rm -it ubuntu:16.04 /bin/bash
사용할 이미지가 저장되어 있는지 확인하고 없으면 다운로드(pull)를 한 후 컨테이너를 생성(create)하고 시작(start) 한다.
redis container
redis는 메모리기반의 다양한 기능을 가진 스토리지이며, 6379포트로 통신한다.
백그라운드 모드(detached mode) -d, 컨테이너 포트를 호스트의 포트로 연결하는 -p 옵션을 사용
백그라운드 모드로 실행하지 않으면 foreground로 실행되어 아무키도 입력할 수 없게 됨(ctrl + c 종료)
$ docker run -d -p 1234:6379 redis
-p 옵션을 이용하여 호스트의 1234포트
를 컨테이너의 6379포트
로 연결하여 컨테이너를 띄우는 명령어이다.
호스트의 1234포트로 연결되었으므로, telnet을 이용해서 접속하면 redis를 사용할 수 있다.
MySQL 5.7 container
MySQL 서버를 컨테이너로 실행해보기
$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
-d
옵션으로 백그라운드에서 실행-e
옵션으로 환경변수(MYSQL_ALLOW_EMPTY_PASSWORD)를 설정
패스워드 없이 root 계정을 만들기 위해 환경변수를 설정하였음--name
옵션으로 컨테이너에 읽기 어려운 ID 대신 쉬운 이름(mysql)을 부여
mysql 환경변수 설명 보기(https://hub.docker.com/_/mysql/)
MySQL 서버가 정상적으로 동작하는지 테스트해보기
호스트 OS에 MySQL 클라이언트가 설치되어있어야 해당 테스트를 할 수 있습니다.
=> 맥북에서 homebrew를 이용하여 MySQL 클라이언트 설치하기 (https://whitepaek.tistory.com/3)
WordPress container
워드프레스는 데이터베이스가 필요하기 때문에 MySQL 컨테이너에 워드프레스 데이터베이스를 만들고 WordPress 컨테이너를 실행할 때 --link
옵션을 이용하여 MySQL 컨테이너를 연결해야 한다.
--link
옵션은 환경변수와 IP 정보를 공유하는데 링크한 컨테이너의 IP 정보를 /etc/hosts에 자동으로 입력하므로 워드프레스 컨테이너가 MySQL 데이터베이스의 정보를 알 수 있게 된다.
1.데이터베이스 생성
$ mysql -h127.0.0.1 -uroot
create database wp CHARACTER SET utf8;
grant all privileges on wp.* to wp@'%' identified by 'wp';
flush privileges;
quit
2.워드프레스 컨테이너 실행
$ docker run -d -p 8080:80 \
--link mysql:mysql \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_NAME=wp \
-e WORDPRESS_DB_USER=wp \
-e WORDPRESS_DB_PASSWORD=wp \
wordpress
워드프레스용 데이터베이스를 생성하고, 워드프레스 컨테이너를 실행한다. 호스트의 8080포트를 컨테이너의 80포트로 연결하고 MySQL 컨테이너와 연결한 후 각종 데이터베이스 설정 정보를 환경변수로 입력한다.
'프로그래밍 노트 > 도커' 카테고리의 다른 글
[docker] Dockerfile 작성하기_1(이미지 만들고 배포하기) (0) | 2020.10.19 |
---|---|
[docker] docker compose 작성법 알아보기 (0) | 2020.10.09 |
[docker] docker compose 커맨드 (1) | 2020.10.09 |
[docker] 도커(docker) 기본 명령어 (0) | 2020.10.03 |
[docker] 도커(docker)란 무엇인가? (0) | 2020.10.03 |