로컬 시스템에 도커 데몬을 설치할 필요가 없을 수도 있습니다.

4934 단어 devopscontainerdocker
Docker 명령을 사용하는 몇 가지 흥미로운 점을 공유하고 싶습니다.

아래에 나열해야 하는 환경:
  • macOS Big Sur Version 11.3.1 with multiple accounts
  • Homebrew 3.1.8
  • docker client v20.10.6
  • 최신 버전의 docker 클라이언트 및 docker 데몬이 설치된 Ubuntu 20.04

  • 내 로컬 환경에서 macOS Big Sur Version 11.3.1 . Mac용 Docker 데스크탑을 설치할 필요가 없으며 docker client만 있으면 충분합니다.

    내 로컬 컴퓨터에 도커 데몬을 설치하는 것을 좋아하지 않는 이유는 무엇입니까?



    Mac용 Docker 데스크탑은 내 macOS에 docker client , docker daemon 및 Kubernetes 클러스터 기능을 설치합니다. 8GB 메모리가 있는 구형 Mac(2014)을 사용할 때 이러한 구성 요소가 너무 많은 리소스를 차지하며 여러 활성 컨테이너와 Goland IDE로 인해 구형 Mac이 느려지는 상황이 있습니다.

    그래서 내 컴퓨터에 docker client만 설치하고 컨테이너를 관리하기 위해 원격docker daemon에 연결하고 싶습니다.

    어디에서나 Homebrew 설치



    그리고 제 상황에서는 추가 권한이 없는 표준 사용자를 사용하고 싶습니다.

    누군가가 관심을 가질 수 있는 문제는 다음과 같습니다.
    https://superuser.com/questions/619498/can-i-install-homebrew-without-sudo-privileges

    그리고 이 스크립트를 사용하여 권한 없이 Homebrew를 설치할 수 있습니다.

    mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
    


    그리고 저처럼 PATH를 사용하신다면 ~/.zshrc 파일에 Homebrew의 oh-my-zsh를 추가하는 것 잊지 마세요.

    Homebrew의 환경과 PATH를 ~/.zshrc에 추가하십시오.

    HOMEBREW_CELLAR=${HOME}/homebrew/Cellar
    HOMEBREW_PREFIX=${HOME}/homebrew
    # $PATH for brew without root privileged
    export PATH=$HOMEBREW_PREFIX/bin:$PATH
    


    그리고 source ~/.zshrc 터미널을 다시 시작하지 않고 brew 표준 사용자로 사용할 수 있습니다.

    Homebrew로 도커 클라이언트 설치


    brew search docker 명령을 사용하여 brew 채널에서 도커에 대한 정보를 얻을 수 있습니다.

    ➜  ~ brew search docker
    ==> Formulae
    docker ✔                         docker-credential-helper-ecr     docker-machine-driver-vmware     docker-squash
    docker-clean                     docker-gen                       docker-machine-driver-vultr      docker-swarm
    docker-completion                docker-ls                        docker-machine-driver-xhyve      docker2aci
    docker-compose                   docker-machine                   docker-machine-nfs               dockerize
    docker-compose-completion        docker-machine-completion        docker-machine-parallels         lazydocker
    docker-credential-helper         docker-machine-driver-hyperkit   docker-slim
    ==> Casks
    docker                                      docker-toolbox                              homebrew/cask-versions/docker-edge
    ➜  ~ 
    


    그리고 docker client 명령을 사용하여 brew install docker를 설치할 수 있습니다.

    ➜  ~ docker version
    Client: Docker Engine - Community
     Version:           20.10.6
     API version:       1.41
     Go version:        go1.16.3
     Git commit:        370c289
     Built:             Mon Apr 12 14:44:32 2021
     OS/Arch:           darwin/amd64
     Context:           default
     Experimental:      true
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    


    도커 컨텍스트 생성


    docker context https://docs.docker.com/engine/context/working-with-contexts/에 대한 추가 정보

    문서가 말했듯이 :

    단일 Docker CLI는 여러 컨텍스트를 가질 수 있으며 각 컨텍스트에는 다른 클러스터 또는 노드를 관리하는 데 필요한 모든 엔드포인트 및 보안 정보가 포함됩니다. docker context 명령을 사용하면 이러한 컨텍스트를 쉽게 구성하고 컨텍스트 간에 전환할 수 있습니다.

    ➜  ~ docker context ls
    NAME        DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT   ORCHESTRATOR
    default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                         swarm
    


    원격 시스템에 연결할 수 있습니다(비밀번호가 아닌 ss key 로그인을 사용해야 함)

    아래 명령을 사용하여 Docker 컨텍스트를 만듭니다.

    docker context create example-name --docker "host=ssh://username@host:port"
    


    로컬 사용자 이름과 같더라도 항상 Docker 엔드포인트 주소에 사용자 이름을 포함하십시오. 포트를 생략하면 기본값은 22입니다.

    사용하려는 Docker 컨텍스트를 변경합니다.

    docker context use example-name
    
    # Check the images on the remote machine
    docker images
    


    결론


    docker context 명령을 사용하여 GNU-Linux 또는 다른 OS에 설치된 원격 Docker 데몬에 연결할 수 있습니다. 이것은 할 수 있습니다
    사용하려는 원격 Docker 데몬을 사용할 수 있도록 도와주세요. 그리고 로컬 환경에 Docker 데몬을 설치할 필요가 없습니다.

    좋은 웹페이지 즐겨찾기