본문 바로가기
반응형

Linux88

Docker - docker-compose로 다중 컨테이너 관리하기 Docker를 실제 사용하다보면, Database, Web, Memory Cache 등 다중 컨테이너로 사용해야 하는 상황이 종종 발생한다. 이때 만약 기본적인 Docker 명령을 활용한다면, 아래와 같이 여러 단계를 거쳐야 한다. 1. 먼저 함께 사용할 내부 네트워크를 생성하고, 2. 이후 Docker를 Run을 통해 실행할때 마다 네트워크 및 볼륨정보등 각각의 필요한 옵션을 지정해야 줘야 한다. 아래 명령은 myapp이라는 네트워크를 생성하고, Database의 저장을 위해 mariadb-data라는 볼륨용도의 컨테이너를 생성하여 Mysql 5.7버전의 컨테이너를 생성하는 명령이다. sudo docker network create myapp docker run -d --network my-app --.. 2024. 2. 27.
Docker - Image Alpine, Slim, Stretch, Buster, Jessie, Bullseye Docker 개발을 진행하다보면, 기본 이미지 선택을 하게 되는데, 각 필요한 프로덕션에 추가로 붙는 이녀석이 무엇인지 너무 궁금하다. Alpine, Slim, Stretch, Buster, Jessie, Bullseye 이를 이해하기 위해서는 먼저 Docker Image의 Tag 방식을 이해하는 것이 좋다. Tag는 : 다음부터 작성된 내용이 Tag로 사용되는데, 앞에 메인이 되는 Python, Node와 같은 개발할 환경을 선택하고 이후 Tag를 통해 버전을 지정하게 된다. 가장 기본이 되는 이름은 다음과 같다. : 그 이후로는 추가적으로 세부적 필요에 따라서 타입을 나누어 구분하게 된다. :--.... Alpine, Slim, Stretch, Buster, Jessie, Bullseye는 이러한 타.. 2024. 2. 27.
Linux - 메모리 PageCache/BufferCache/Shared 이해 메모리를 비우기 전에, 우선 먼저 메모리를 알아야 할 것 같다. free 명령을 이용해서 현재 메모리 상황을 보면 다음과 같다. 메모리는 현재 1GB(985Mbyte )가 전체이고, 현재 사용중인 메모리는 170Mbyte이고 비어있는 공간은 230Mbyte 이다. 이외 buff/cache가 있는데 이는 실제로 사용이 가능한 공간이라고 봐도 무방하다. 그래서 뒤에 available이라는 문구로 사용이 가능하다고 표현하고 있다. 그렇다면 buff/cache는 어떤 공간일까. 이와 관련있는 부분으로는 Pagecache와 BufferCache에 대해서 알아보도록 하겠습니다. PageCache/BufferCache PageCache와 BufferCache는 같은것 같지만 조금 다른게 구분이 필요하다. 먼저 Pag.. 2024. 2. 24.
Docker - Mariadb 실행 요점 정리, 볼륨 구성등 실행할때 마다 웹 검색해서... 어떻게 하면 좋을까 싶어 정리해본다. 가장 기본적으로 Mariadb를 실행하기 위해서는 Password 설정을 해주어야 한다. 아래 입력이 가장 짧게 진행하는 것이다. 여기에 -p 옵션을 이용해서 포트를 호스트에서 연결할 수 있도록 하면 기본적인 환경 구성은 완료되었다고 할 수 있다. docker run --detach --name mariadb -p 3306:3306 --env MARIADB_ROOT_PASSWORD=password! mariadb:latest 실행할 때 필수로 사용해야 하는 옵션에 대해서 알아보도록 하자. --detach: docker run 명령은 기본적으로 백그라운드 실행을 하지 않아 터미널에 실행상황을 출력하게 된다. 따라서 백그라운드 실행을 하고.. 2024. 2. 23.
Docker - detach/attach(백그라운드/포그라운드) 이해 이거를 정리해야 하나 싶다가도, 필자 역시 처음으로 옵션을 찾아보고 이해하는데 도움이 되고자 여기에 정리해본다. 가장 쉽게 본다면, 아래 표와 같이 정리 할 수 있다. Docker 명령 백그라운드 실행 (Detached mode) 명령(기본): start, Docker 옵션: --detach(-d), Docker Compose 옵션: -d 포그라운드 실행 (Attached mode) 명령(기본): run, Docker 옵션: --attach(-a), Docker Compose 옵션: 없음 도커는 기본적으로 detach와 attach 모드로 사용하는 명령마다 기본 실행모드가 정해진다. 이를 무시하고 정해진 모드로 동작하도록 구성할 있는 옵션이 --detach/--attach 옵션이다. 포그라운드 실행(At.. 2024. 2. 23.
Docker - Storage path, 저장 위치 변경 Docker의 컨테이너와 이미지들은 파일 기반으로 저장되어 관리된다. 이 기본 위치는 /var/lib/docker/ 에 위치된다. 만약 컨테이너와 이미지 들이 많아진다면, 별도의 스토리지를 이용해서 용량을 관리하는 것이 좋다. 그럼 기본 저장 위치를 변경하는 방법에 대해서 알아보도록 하겠다. 가장 좋은 방법은 data-root 라는 기본 저장 위치 경로를 변경해주는 방법이다. 이를 위해서는 deamon.json(없는 경우 신규로 생성)로 관리하는 방안으로 docker 서비스를 중지한 이후, /etc/docker/ 하위에 아래와 같이 작성해 주면 된다. (필자가 지정할 신규 경로는 /data/docker 이다) $ sudo service docker stop $ sudo nano /etc/docker/da.. 2024. 2. 23.
Docker - 컨테이너에서 vi(vim) 편집기 사용하기 도커 이미지에서 긴급하게 작업을 진행해야 하는경우 vi 편집기를 사용해야 할 때 유용하다. 먼저 현재 자신 컨테이너의 정보를 확인한다. docker ps $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7c0bd248fced /asecurity/test:latest "bash -c /test…" 3 days ago Up 3 days test 이후 아래 명령을 이용해서 도커 컨테이너로 들어간다. 마지막에 bash를 입력해줘야 기본 명령어를 사용할 수 있다. docker exec -it 7c0bd248fced bash 성공적으로 도커 이미지에 들어왔다면 프롬프트를 확인할 수 있다. 이제 vi 에디터를 설치하도록 하자. apt-get upd.. 2024. 2. 23.
리눅스 - curl/시스템 웹 프록시 설정 보통 회사에서는 웹 프록시를 이용해서 정상적으로 웹 서비스 이용이 가능한 경우가 많다. 이를 위해서 시스템에서 제공하는 기본 설정이 바로 http_proxy, https_proxy 환경 변수 이다. export http_proxy=http://proxy_host:port export https_proxy=http://proxy_host:port 이 값의 위와 같이 설정하면 된다. 만약 계정 정보가 필요한 경우 아래와 같이 설정하자. export http_proxy=http://user:pass@proxy_host:port export https_proxy=http://user:pass@proxy_host:port /etc/environment 혹은 /etc/profile 에 설정하면, 매번 새로 설정할 .. 2024. 2. 23.
리눅스 - swappiness, Swap 조절 리눅스도 그렇고 윈도우도 그렇고 메모리가 부족해지면 보조 저장장치를 메모리로 사용하게 된다. DB나 Redis와 같은 고성능을 요구하는 어플리케이션의 경우 SWAP을 사용하게 되면 성능에 치명적인 영향을 미칠 수 있다. 따라서 아래와 같이 메모리 최적화를 위해 SWAP을 사용하지 않도록 적용하면, 효과적일 수 있다. /etc/sysctl.conf 파일을 편집한 후 다음과 같은 설정을 지정할 수 있다. vm.swappiness = [숫자값] 위 설정에서 [숫자값]은 원하는 swappiness 값을 지정한다. 예를 들어, swappiness 값을 0으로 설정하려면 다음과 같이 입력한다. sysctl -w vm.swappiness=0 또는 아래 명령을 통해서도 바로 적용이 가능하다. echo 0 >/proc/.. 2024. 2. 22.
반응형