로메오의 블로그

[Docker] Docker-compose 설정 본문

Backend/Oracle & SQL

[Docker] Docker-compose 설정

romeoh 2019. 9. 22. 15:40
반응형

[SPRING BOOT] 스프링 부트 환경설정

[SPRING BOOT] REST WEB SERVICE 구축 - 배포하기

[SPRING BOOT] LOGBACK 설정하기

[SPRING BOOT] LOMBOK 설정하기

[DOCKER] MAC에 DOCKER 설치하기

[ORACLE] DOCKER에 ORACLE 11G 설치하기

[ORACLE] 사용자 생성하기 - USER 추가

[POSTGRESQL] DOCKER에 POSTGRESQL 설치하기

[SPRING BOOT] 프로젝트 구조 정리하기

[SPRING BOOT] SPRING BOOT - MY BATIS 연동 - ORACLE

[SPRING BOOT] MYBATIS SQL 로그 찍기 - LOG4JDBC

Docker-compose 설치

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

권한설정

$ sudo chmod +x /usr/local/bin/docker-compose

version 확인

$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9

 

docker-compose.yml 생성

$ cd ~
$ mkdir docker
$ cd docker
$ touch docker-compose.yml
version: '2'
services:
  oracle11g:
    image: jaspeen/oracle-xe-11g
    container_name: oracle11g
    volumes:
      - ~/docker/data:/u01/app/oracle jaspeen/oracle-xe-11g
    ports:
      - 1521:1521

docker-compose.yml 파일을 열어서 위와같이 입력합니다.

 

docker container 제거하기

$ docker ps -a
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS                     PORTS               NAMES
abd9f65ca3dd        jaspeen/oracle-xe-11g   "/entrypoint.sh "   2 weeks ago         Exited (137) 2 weeks ago                       oracle11g

oracle11g  컨테이너가 실행되고 있습니다.

이 컨테이너를 완전히 삭제하고 docker-compose에서 새로 실행할 예정입니다.

기존 데이터는 삭제됩니다. 

(별로 한게 없어서)

$ docker rm oracle11g

docker-compose 실행

$ docker-compose up -d

하지만 지난번 만들었던 user, tablespace 등이 제거 되었기 때문에 SQL Developer에서 접속은 정상적으로 되지 않습니다.

 

[ORACLE] DOCKER에 ORACLE 11G 설치하기

[ORACLE] 사용자 생성하기 - USER / TABLESPACE / TABLE 생성하기

위 포스트를 참조해서 user, tablespace 등을 다시 설정합니다.

여기서는 순삭으로 진행합니다.

User 생성

$ docker exec -it oracle11g sqlplus
Enter user-name: system
Enter password: oracle
SQL> CREATE TABLESPACE DEV_SPACE DATAFILE 'dev_space.dat' SIZE 500M AUTOEXTEND ON NEXT 10M;
SQL> DEFINE NEW_USER = 'dev_user';
SQL> CREATE USER &NEW_USER. IDENTIFIED BY "1234";
SQL> GRANT CONNECT, RESOURCE, CREATE JOB, CREATE VIEW, CREATE ANY CONTEXT TO &NEW_USER;
SQL> ALTER USER &NEW_USER QUOTA UNLIMITED ON USERS;
SQL> ALTER USER &NEW_USER DEFAULT TABLESPACE DEV_SPACE;

 

Table 생성

-- 테이블 생성
CREATE TABLE BOARD (
      IDX        NUMBER          NOT NULL PRIMARY KEY
    , NAME       VARCHAR2(50)    NOT NULL
    , EMAIL      VARCHAR2(50)    NOT NULL
    , PASSWD     VARCHAR2(50)    NOT NULL
    , CONTENT    VARCHAR2(1000)  NOT NULL
    , POST_DATE  DATE DEFAULT SYSDATE
);

-- 시퀀스
CREATE SEQUENCE BOARD_SEQ
    START WITH 1
    INCREMENT BY 1
    NOMAXVALUE 
    NOCACHE; 
 
 -- 데이터 입력
INSERT INTO BOARD (
      IDX
    , NAME
    , EMAIL
    , PASSWD
    , CONTENT
) VALUES ( 
      BOARD_SEQ.NEXTVAL
    , 'james'
    , 'james@gmail.com'
    , '1111'
    , '안녕하세요. 제임스입니다.'
);

docker-compose 중지

$ docker-compose stop

docker-compose 프로세스 확인

$ docker-compose ps
          Name                 Command        State     Ports
-------------------------------------------------------------
firstproject_oracle11g_1   /entrypoint.sh    Exit 137

docker-compose 삭제

$ docker-compose rm

docker-compose 재시작

$ docker-compose up -d

 

반응형
Comments