AI 부트캠프 - Docker 3

Cookie Baking·2024년 12월 9일

AI 부트 캠프 TIL

목록 보기
31/42

알고리즘 (택배상자 / 출처 : 프로그래머스)

🧚

규칙은 간단하다.
order의 숫자 나열을 최우선으로 하되
해당 나열에 포함되지 않는 숫자들을 관리하는 sub_array가 필요하다는 것이다.

다만 이 sub_array를 초기화 하는 부분에서 많은 애를 먹었다.

시간의 복잡도가 더 높게 나왔지만 해결한(?) 방법은 아래와 같다.

  • sub_array를 만들며 order를 순회하는 것이다.
  • answer + 1 되는 조건은 sub_array에 꺼내왔을 때 즉, 일종의 역 조건에 해당했을 떄만 해당된다. 정상적으로 올라가는 조건의 order일 경우라면 그때마다 sub_array가 생성되며 그 뒤로는 동일하게 된다.

특히나 두번째 조건이 헷갈려서 시간이 꽤 소모되었었는데
너무 알고리즘 문제를 덜 푼 것 같다. 감을 되찾아야겠다.

📌

def solution(order):
    
    l = len(order)
    cnt = 1
    sub_o = []
    answer = 0
    
    # print(sub_o)
    
    for one in order:
        
        while cnt <= one:
            sub_o.append(cnt)
            cnt += 1
        
        # print(f"ONE : {one}")
        if len(sub_o) and one == sub_o[-1]:
            sub_o.pop()
            answer += 1
        else:
            break
        
        # print(f"ANSWER : {answer}")
        # print(f"SUB_O : {sub_o}")
        # print(f"CNT : {cnt}")
        
    
    return answer

Docker Network (CNM)

도커 네트워크는 도커 컨테이너끼리 서로 통신할 수 있게 도와주는 네트워크임
이를 통해 컨테이너들이 서로 통신하는 걸 더 쉽게 할 수 있고, 보안도 더 강하게 만들 수 있음

샌드박스
샌드박스는 컨테이너를 외부 세계로부터 완전히 분리함
바깥에서 들어오는 네트워크 연결이 샌드박스 안의 컨테이너로는 들어올 수 없음

엔드포인트
엔드포안트는 외부 세계와 샌드박스 사이의 연결점임
엔트포인트는 샌드박스를 다음 요소인 네트워크에 연결함

네트워크
네트워크는 엔드포인트에서 다른 엔드포인트로, 결국은 컨테이너에서 다른 컨테이너로 데이터를 보내는 길

하나의 네트워크 샌드박스 안에는 여러 개의 엔드포인트가 있을 수 있음
-> 하나의 샌드박스 안에 있는 컨테이너는 네트워크에 전혀 연결되지 않거나, 여러 네트워크에 동시에 연결될 수 있음
-> 가령, 세 개의 샌드박스 중 하나는 엔드포인트를 통해 두 개의 네트워크에 동시에 연결된 상태일 수 있음

  • 개별 컨테이너가 네트워크에서 어디에서 작동하는지는 정하지 않음 (모든 컨테이너가 한 호스트에서 실행될 수도 있고 - 로컬, 여러 호스트에 걸쳐 있을 수도 있음 - 글로벌)

브리지 네트워크 : Docker의 기본 네트워크

  • 한 검퓨터 안에서 여러 Docker 컨테이너가 서로 통신할 수 있게 해줌
  • 컨테이너를 이 네트워크에 붙이면, Docker가 알아서 IP 주소를 줌
  • 다른 네트워크랑은 일단 따로 동작함 (단, 포트 매핑을 통해 바깥에서도 컨테이너에 접근할 수 있게 할 수 있음)
  • 공용 네트워크 : 외부에서 접근할 수 있게 하려면, 브리지 네트워크에 포트를 열어주거나, 아니면 '호스트 네트워크'라고 해서 컨테이너가 직접 우리 컴퓨터의 네트워크를 쓰게 하는 방법이 있음
  • 사설 네트워크 : 특별한 컨테이너끼리만 통신할 수 있는 네트워크, Docker에서는 사용자가 직접 네트워크를 만들고, 그 안에 원하는 컨테이너만 연결할 수 있음
    이렇게 하면 다른 컨테이너나 외부 네트워크와는 격리되어서, 더 안전하게 정보를 주고 받을 수 있음

PUSH : 이미지 올리기

# 1. 도커 로그인 
docker login

# 이미지 받아오기
docker image pull nginx:latest

# 3. push 준비
docker image tag nginx:latest 로그인한 계정/올릴 파일명

# 4. push
docker push 로그인한 계정/올릴 파일명

0개의 댓글