컨테이너를 단독으로 실행해보는 예제. 모든 명령어는 docker hub 내용을 기반으로 작성했으며 사용 환경과 업무에 따라 설정을 변경해야 한다. 해당 예시의 가상머신 서버의 ip는 192.168.1.61이며, 가상머신은 virtualbox를 사용했고, 네트워크는 "어댑터에 브릿지" 를 설정했다.
1. httpd
- httpd는 대표적인 웹서버 프로그램이다. html파일들을 올려서 홈페이지를 호스팅할 수 있다.
- 참조 : https://hub.docker.com/_/httpd
$ docker run -dit --name my-apache-app -p 8080:80 -v /apache:/usr/local/apache2/htdocs/ httpd:2.4
이 폼은 위에 공식 도커허브에 나오는 폼의 변형이며, 호스트 서버의 /apache 경로에 html 파일을 저장하면 된다. httpd는 /usr/local/apache2/htdocs에 html파일들을 저장하기 때문. 결과는 다음과 같다. 여기에 홈페이지 통파일을 올리면 된다.
2. mariadb
- mariadb는 오픈소스 DB 중 대표적인 관계형 데이터베이스이다.
- 참조 : https://hub.docker.com/_/mariadb
docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=루트비번 -itd mariadb:latest
이 폼은 위 공식 도커허브에 나오는 폼의 변형이다. mariadb에 접속할 루트 비밀번호는 직접 설정해야 한다. 또한 외부에서 연결하는 것은 고려하지 않았으므로 딱히 포트를 오픈하지는 않는다. 컨테이너가 생성되었으면, 다음과 같이 해당 컨테이너에 접속해본다.
docker container exec -it some-mariadb /bin/bash
접속하면 해당 컨테이너의 프롬프트로 전환되며, 여기서 database에 접속할 수 있다. 비밀번호는 컨테이너를 생성할 때 명시한 루트 비밀번호를 넣자.
mysql -u root -p
이제 아는대로 명령어를 입력해보자.
# 현재 데이터베이스 확인
show databases;
# 데이터베이스 생성
create database phones;
# 생성한 데이터베이스 사용
use phones;
# 생성한 데이터베이스 안에 테이블 있는지 확인
show tables;
# 생성한 데이터베이스 안에 테이블 생성
CREATE TABLE products (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
comment TEXT NULL,
created DATETIME NOT NULL,
ceo VARCHAR(50) NOT NULL,
PRIMARY KEY(id)
);
# 생성한 테이블의 정보 확인
DESC products;
# 테이블에 데이터 삽입하기
INSERT INTO products (name,comment,created,ceo) VALUES ('iPhone','iPhone12 Pro Max',NOW(),'tim cook');
INSERT INTO products (name,comment,created,ceo) VALUES ('Galaxy','Galaxy 20',NOW(),'lee jaeyong');
# 삽입한 데이터 확인
SELECT * FROM products;
3. jupyter notebook
- 주피터 노트북은 웹브라우저에서 파이썬을 코딩하고 실행할 수 있는 프로그램이다. 사용하는 개발 라이브러리에 따라 여러가지 종류의 이미지를 다운받을 수 있다.
- 참조 : https://hub.docker.com/r/jupyter/datascience-notebook
- 해당 도커허브에서는 설치관련하여 특별한 정보는 없고, 아래 사이트에서 확인할 수 있다.
https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html
docker run -p 8888:8888 jupyter/scipy-notebook:17aba6048f44
이 폼은, 위 공식 사이트의 기본 예시 중 하나이다. 실행해보자. 용량이 엄청 크므로 오래 걸릴 수 있다. 해당 명령을 실행하면 아래와 같이 경로를 알려준다.
http://192.168.1.61:8888/?token=13fa3cfcfefec360f0e057b92c4c04ba893b3bfffc1a4031
IP를 192.168.1.61로 한 이유는 외부에서 접속하기 때문이며, 도커를 설치한 가상머신 자체에서 실행한다면 위에 나온대로 IP를 127.0.0.1로 하면 된다. 아래와 같은 화면이 나온다.
new 버튼을 누르고 Python3를 선택한다.
이제 다음과 같이 파이썬 코딩을 할 수 있다.
'Docker Advanced' 카테고리의 다른 글
[Docker Advanced] Docker Swarm network 개념 이해 (5) | 2020.07.08 |
---|---|
[Docker Advanced] Docker Swarm Cluster 명령어와 작업 예시 (0) | 2020.07.02 |
[Docker Advanced] Docker Swarm Cluster 구축 (0) | 2020.07.02 |
Docker 예제 : 웹서버 어플리케이션 (0) | 2020.05.15 |