crontab docker 실행 안되는 3가지 이유

crontab으로 docker를 실행하려는데 docker가 실행되지 않는 경우 있죠? crontab docker 실행 안되는 이유와 해결 방법을 살펴보겠습니다. docker 명령 자체에 문제가 있는 경우 여러분이 작성한 docker 명령이 분명 잘 작동했는데, 그대로 옮겨 적었는데 작동하지 않는다면 일단 옮겨 적는 과정에서 실수로 오타가 난 것은 없는지 확인해 주세요. 만약 오타 없이 잘 작성했다면 다음으로 넘어가세요. docker 명령어를 찾지 … Read more

Ubuntu Docker Compose 설치 방법(22.04 기준)

Ubuntu 운영체제에 아직 Docker와 Docker Compose를 설치하지 않으셨나요? 혹은 설치한지 오래됐고, 새버전을 설치하고 싶으신가요? Ubuntu Docker Compose 설치 방법 알아보겠습니다. Ubuntu Docker Compose 설치 방법 개요 과거에는 docker도 설치하고 docker-compose도 별도로 설치해야 했었습니다. 그런데 이제는 Docker Engine만 설치하면 Docker compose를 플러그인으로 설치하면 됩니다. 그리고 docker-compose 명령어 대신에 docker compose 명령어를 사용하면 됩니다. 그럼 우분투 18.04, … Read more

Docker Jenkins 설치 및 nginx https 적용 방법

먼저 Jenkins Docker 설치 방법을 살펴보겠습니다. 그리고 해당 Jenkins는 경우에 따라 외부 네트워크에서도 접근해야 할 필요성이 생깁니다. 이를 위해서 Jenkins 컨테이너에 대한 nginx https 적용 방법까지 알아보도록 하겠습니다. Docker Jenkins 설치 개요 우선 Docker Compose를 이용해서 Jenkins를 설치할 것입니다. 그리고 Nginx에서 HTTPS 설정을 해 줄 것입니다. Jenkins 컨테이너 설정 Jenkins 컨테이너 이름, 이미지, 재시작, 포트 … Read more

Jenkins alpine 컨테이너에서 NodeJS 프로젝트 빌드하는 3가지 방법

Jenkins alpine 컨테이너에서 NodeJS 프로젝트를 빌드하려는데 오류가 생기나요? Jenkins alpine 이미지를 활용해서 Jenkins를 구동하지 말아야 하는 이유를 설명해 드립니다. Jenkins alpine 이미지 사용 비추천 결론부터 일단 말씀드리면, Jenkins를 Docker로 띄워서 사용할 것이고, NodeJS 프로젝트를 빌드할 계획이라면 Alpine Jenkins 도커 이미지를 사용하지 마시길 권합니다. 이유: musl-libc 이슈 alpine은 경량 musl-libc 라이브러리를 사용하는데, Jenkins의 NodeJS 플러그인은 glibc로 … Read more

Jenkins ssh key 설정 방법(Credentials로 git 연동) 2가지

Jenkins에서 특정 프로젝트의 git 저장소 활용은 빼놓을 수 없습니다. 아무에게나 git 저장소를 개방할 수는 없으며, 허가받은 사용자에게만 인증처리를 해주어야 합니다. 그럼 프로젝트에서 git 연동을 위한 인증 처리 방법으로 Jenkins SSH Key 설정 방법을 살펴보겠습니다. 프로젝트에서 Git 연동(feat. Jenkins SSH Key 설정) 앞서 말씀드렸듯이 Jenkins에서 git repository를 설정하는 경우 Credentials를 통해서 인증처리를 해 줘야 합니다. Jenkins가 … Read more

도커 이미지 파일 save(export) 및 load(import) 방법(Docker Image File)

특정 도커 이미지를 제작한 이후 해당 도커 이미지를 파일로 저장할 필요가 생길 때가 있습니다. 그리고 추출한 파일을 도커 이미지로 불러들여야 하는 경우가 있습니다. 도커 이미지 파일로 저장하고, 추출한 파일을 도커 이미지로 읽어들이는 방법을 공유합니다. 도커 이미지 파일로 저장 도커 이미지를 파일로 추출하는 방법입니다. 명령어 한 줄이면 간단히 해결됩니다. -o 옵션은 어떤 파일로 저장할 것인지 설정하는 … Read more

docker sudo 없이 실행하기

docker engine을 설치하고 나서, docker 명령을 사용하려면 sudo를 매번 붙여줘야 하는 번거로움이 있습니다. docker 명령어를 sudo 없이 사용하는 방법 확인해 보겠습니다. docker sudo 없이 실행하려면 현 사용자를 docker 그룹의 사용자로 추가해주면 문제는 해결된다. 이제 로그아웃 후 다시 로그인하거나, 재부팅 하고 나면 sudo 없이 docker 명령어를 실행할 수 있다. 관련 자료 도커 설치 후 과정에 대한 … Read more

docker-compose WordPress 세팅 – 2부. wordpress, nginx 설정

지난 1부에서는 docker-compose WordPress 세팅을 위한 mariadb 설정에 대해 다루었습니다. 2부에서는 wordpress와 nginx 설정을 통해서 워드프레스를 구동해 보도록 하겠습니다. docker-compose WordPress 설정 여기에서는 WordPress를 컨테이너로 띄울 것입니다. WordPress를 php 7.1으로 구동하는 fpm으로 띄울 것이며 도커 이미지 경량화를 위한 alpine 리눅스 이미지를 사용할 것입니다. 관련 사항을 docker-compose.yml에 추가하겠습니다. 1부에서 mariadb의 환경변수를 추출했던 것처럼 .env에 환경 변수는 … Read more

docker-compose WordPress 세팅 – 1부. mariadb 설정

서비스는 하나인데 사용해야 하는 컨테이너가 여러 개인 경우 매번 각종 도커 명령어를 사용하는 것은 말도 못하게 번거롭습니다. docker-compose WordPress 설정 방법을 알아보겠습니다. docker build, docker run, docker stop, docker rm, docker restart 등의 명령어를 docker-compose 하나로 조금 더 편하게 관리해 봅시다. docker-compose WordPress 설정하기 WordPress를 이용하려면 Database도 필요하고, WordPress를 구동하는 웹 서버도 필요합니다. 웹서버는 php로 … Read more

Dockerfile –build-arg option

도커 컨테이너를 띄울 때 volume을 설정해서 persistence를 잡아 줄 때, 컨테이너에 마운팅되는 방식이 머신별로 차이가 있는 것을 발견하였다. 필자는 php:7.1.10-fpm-alpine 이미지를 이용하여 컨테이너를 띄웠다. 볼륨을 마운트하면, 마운팅 된 디렉토리의 UID와 GID가 계속 1000으로 나오는 것이었다. 컨테이너에서 php-fpm을 띄우는 사용자는 www-data로 세팅해 놓았고, www-data 사용자의 UID와 GID는 둘 다 기본으로 82로 잡혀 있었다. www-data 사용자로는 마운팅된 … Read more