[Docker/VSCode] VSCode에서 원격 컴퓨터의 Docker 정보에 액세스

개요



VSCode의 확장에 도커 되는 것이 있는 것 같기 때문에, 이것을 사용해 보려고 시행착오한 기사입니다.

전제


  • 로컬 컴퓨터에 VSCode, 원격 컴퓨터에 docker가 설치됨
  • 로컬 컴퓨터의 VSCode RemoteDevelopment를 통해 원격 컴퓨터에 액세스 할 수 있음

  • 환경





    버전 등


    로컬 OS
    Windows10

    원격 OS
    CentOS Linux release 7.5.1804 (Core)

    도커
    Docker version 18.09.0, build 4d60db4

    VSCode
    1.44.2


    방법



    처음 한 걸음



    VSCode Extension - Docker - 설치 방법은 여기에 작성되었습니다.
    Working with containers

    ※주의(2020/04/22 추가)



    VSCode의 Extension 'docker'를 설치할 때는 VSCode에서 원격 환경에 액세스한 상태로 설치합니다.
    그러면 이렇게 됩니다.

    이 기사를 한 번 작성한 후 다른 환경에서 잘못 로컬로 설치했는데 움직이지 않았습니다. 주의>_<
  • 시도한 결과
    엄마 Failed to connect ...
    Failed to connect. Is Docker installed and running?로 표시되는 orz
  • 이 결과에 대한 공식 사이트 설명
    마이크로소프트 / vscode-docker (Troubleshooting)
  • docker 설치 중입니까?
    (↑의 주의도 참조. 로컬이 아니고, 리모트에 인스톨 하지 않으면 안 된다.)
  • 설치하지 않으면 VSCode의 버그입니다.
    그런 바나 ....
    어떻게 하면 좋을까....>_<.


  • 주요 작업



    잘 보면 github README에 리눅스의 경우에해야 할 일이 쓰여졌다.


    그래서 이 근처를 실시하자!

  • docker를 sudo없이 실행할 수 있도록 허용
    간단하기 때문에 약어

  • Configuring remote access with daemon.json
    json 파일 만들기

  • /etc/docker/daemon.json
    {
      "hosts": [
        "unix:///var/run/docker.sock",
        "tcp://127.0.0.1:2375"
      ]
    }
    

    /etc/docker/daemon.json 만들면 restart 실패


    # 以下のエラーが出たとき
    $ sudo systemctl restart docker
    Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
    
    # 言われた通りに journal ログを見てみましょう
    $ sudo journalctl -xe
    -- Unit docker.service has begun starting up.
     4月 19 14:43:56 localhost.localdomain dockerd[14581]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [unix://], from file: [unix:///var/run/docker.sock tcp://127.0.0.1:2375])
    

    무키세이
  • 참고
    업데이트 daemon.json,start failed
    이 사람들도 곤란하고 있었던 것 같아(´・ω・`)

  • 대책



    ↓의 2개중 어느 쪽인가를 사용하자(둘 다 같은 것을 말하고 있어)
  • Unable to start docker after configuring hosts in daemon.json
  • Cannot load hosts in configuration json file when starting docker daemon

  • 채용한 대책



    1. /etc/systemd/system/docker.service.d/override.conf` 작성


    $ sudo mkdir /etc/systemd/system/docker.service.d
    $ sudo touch /etc/systemd/system/docker.service.d/override.conf
    $ sudo vim /etc/systemd/system/docker.service.d/override.conf
    

    /etc/systemd/system/docker.service.d/override.conf
    # Disable flags to dockerd, all settings are done in /etc/docker/daemon.json
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd
    

    2. docker 데몬 재시작


    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    
    # 結果を確認
    $ sudo netstat -lntp | grep dockerd
    tcp        0      0 127.0.0.1:2375          0.0.0.0:*               LISTEN      15781/dockerd
    

    3. sock 파일의 권한 변경



    지금까지는 docker 명령이 sudo 권한으로 다시 실행될 수 있습니다.
    이것에 대해서는, sock 파일의 권한을 재기록하면 잘 되었다
    # 権限がないらしい...
    $ docker ps
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
    
    # だったらこうだ!
    $ sudo chmod 666 /var/run/docker.sock
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    
    # もう一回確認
    $ sudo netstat -lntp | grep dockerd
    tcp        0      0 127.0.0.1:2375          0.0.0.0:*               LISTEN      17279/dockerd
    

    할 수 있었다! ! (((o(*゚▽゚*)o))))
    그리고 VSCode를 다시 시작하면 ...



    후 ~ 원격 컴퓨터에 액세스 할 수있는 것 같습니다 ( ^^) _ 남 ~ ~
  • [참고] sock 파일 재작성을 제안한 기사
    How to fix docker: Got permission denied while trying to connect to the Docker daemon socket

  • 기타


  • 파이썬 도커 환경의 경우 이야기
    htps : // 여기.ゔぃすあ lsつぢお。 코 m / 두 cs / 안녕 rs / 쿠이 cks rtpy

  • 감상



    기사를 좀 더 정리하는 것이 좋을지도 모른다고 생각합니다.
    굳이 실패해 버린 것도 쓰고 있으므로, 원활하게 작업하는 사람에게 있어서는 불필요한 정보가 섞여 있을지도(´・・`)

    다음은이 기사 (VS Code Remote Development에서 Docker 개발 환경 활용)를보고 Docker 컨테이너의 폴더를 VSCode에서 열 수 있도록합니다.

    좋은 웹페이지 즐겨찾기