Backend/Oracle & SQL
[Docker] Docker-compose 설정
romeoh
2019. 9. 22. 15:40
반응형
[SPRING BOOT] REST WEB SERVICE 구축 - 배포하기
[ORACLE] DOCKER에 ORACLE 11G 설치하기
[POSTGRESQL] DOCKER에 POSTGRESQL 설치하기
[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
반응형