-
Docker container를 image화 하여 사용하기Docker 2021. 4. 4. 19:53
2023.01.03 에 이전에 작성한 글을 보니 너무 성의가 없어서 이어서 작성하고자 한다.
본인의 의도는 golang container를 base로 하여 oracle DB 환경을 얹고 .crt로 인증서 업데이트도 하고자 한다.
Golang Docker image를 pull 한 뒤 container 내부로 들어간다.
- docker pull golang:latest
- docker run -itd --name server_base golang:latest
- docker cp xxx.crt server_base:/xxx.crt (인증서 파일 복사)
- docker exec -it server_base /bin/bash
이제 ubuntu에서 필요한 파일을 설치하고 인증서를 업데이트 한다.
- apt-get update
- apt-get upgrade
- apt-get install -y ca-certificates vim
- cp xxx.crt /usr/local/share/ca-certificates/xxx.crt
- chmod 644 /user/local/share/ca-certificates/xxx.crt && update-ca-certificates
Oracle DB client를 다운로드 받아서 특정 경로에 놓는다.
- Wget https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-basic-linux.x64-19.10.0.0.0dbru.zip?
- Wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip?
- unzip instantclient-basic-linux.x64-19.10.0.0.0dbru.zip -d /opt/oracle
- unzip instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle/
- apt-get install libaio1
이제 docker image를 생성하고 docker harbor에 push한다.
- docker commit server_base
- docker tag ${image_id} harbor_ip:port/repository_path/server_base:0.0.1
- docker push ${image_id} harbor_ip:port/repository_path/server_base:0.0.1
이제 Dockerfile에서 사용할 때 해당 image를 사용할 수 있다.
FROM harbor_ip:port/repository_path/server_base:0.0.1 #oracle setting ENV PATH /opt/oracle/instantclient_19_10:$PATH ENV LD_LIBRARY_PATH /opt/oracle/instantclient_19_10:$LD_LIBRARY_PATH ADD . /my/path WORKDIR /my/path RUN go mod tidy RUN go build -o jh main.go RUN chmod +x jh CMD ["./jh dev"]
'Docker' 카테고리의 다른 글
docker-compose로 mongodb 실행하기 (0) 2022.03.25 Docker 환경에서 mongo replicaset 구성하기 (0) 2021.04.17 docker-compose.yml file 설정하기 (0) 2021.04.04 Docker build (0) 2021.04.04 Ubuntu Docker 시작하기 (0) 2021.02.06