4차산업혁명의 일꾼/웹개발

docker 2주차 개발일지

르무엘 2021. 9. 4. 16:17

1.mongodb docker로 띄우기

docker run --name mongo_db -p 27017:27017 -d mongo

 

2.named volume을 사용해서 DB데이터를 유지하기

docker volume create memo

docker run -p 27017:27017 -v memo:/data/db mongo

 

03. 내가 원하는 volume을 docker container에 연결하기

[1] bind mount 문법

docker run -v {host_path}:{container_path} <docker_image>

 

docker run -v "$(pwd)/templates:/templates" -p 80:5000 wellshsdocker-memo:version2

 

[2]Docker network 

(1) docker network 생성하기

docker network create test

(2) docker network 연결해서 container 실행하기

docker run -d -p 24017:24017 --network test --network-alias mongo mongo

(3) container에서 다른 container 호출하기

docker run -it --network test nicolaka/netshoot > dig mongo

(4) 새로운 이미지 생성

docker build -t simple-memo-app:version3 .

(5) flask app newtwork 연결

docker run -p 5000:5000 --network memo simple-memo-app:version3

 

Docker container의 리소스 사용량 제한하기

1.memory 제한하기

docker run -i -m 10m python:3.8

2. cpu 제한하기

docker run -i --cpus=0.5 python:3.8

3. 사용하고 있는 리소스 확인하기

docker stats

 

  build-image:
    needs: run-test-code
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      -
        name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Build and push
        id: docker_build
        uses: docker/build-push-action@v2
        with:
          push: true
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/docker-memo:latest
      -
        name: Image digest
        run: echo ${{ steps.docker_build.outputs.digest }}
  cd-pipeline:
    needs: build-image
    name: continuos deploy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - name: copy file via ssh password
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ec2-user
          key: ${{ secrets.PRIVATE_KEY }}
          port: 22
          source: "docker-compose.yaml"
          target: "/home/ec2-user/"
      - name: executing remote ssh commands using password
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ec2-user
          key: ${{ secrets.PRIVATE_KEY }}
          port: 22
          script: "docker-compose pull && docker-compose up -d"

LIST

'4차산업혁명의 일꾼 > 웹개발' 카테고리의 다른 글

주식자동매매 2주차  (0) 2021.09.12
주식자동매매1주차  (0) 2021.09.12
NodeJS 5주차 개발일지  (0) 2021.09.03
NodeJS 3주차 개발일지  (0) 2021.09.02
5주차 퍼블개발일지  (0) 2021.09.02