밟다

3433 단어 system
최근에 docker를 사용하기 시작했는데 첫째, 렌즈를 켜는 실례가 새로 만든 가상 기기보다 훨씬 편리하고, 둘째, docker는 상대적으로 성숙해졌다. docker-toolbox와 같은 원키 설치 패키지가 생겨서 docker-hub는 국내에서도 각종 렌즈 라이브러리가 생겨서 자원 획득이 처음 나왔을 때보다 훨씬 편리해졌다.그러나 구덩이가 아직 적지 않으니, 이 총결산을 해 보자.
설치하다.
설치는 docker-toolbox를 추천합니다. 앞에 vagrant을 사용하면 가상 박스가 설치되어 있기 때문에 설치할 필요가 없습니다. 없으면 오로라클 홈페이지에서 다운로드할 수 있습니다.
미러링
미러링 찾기
docker 렌즈는 docker-hub에서 내려갈 수 있지만 속도가 느려요. 국내 자원 두 개를 추천합니다.
docker pull stuck
docker pull이 반이 되었는데, 다른 일이 있어서 기계가 잠시 대기하였고, 기계를 깨운 후, docker pull는 멈추어 움직이지 않았다.네트워크에 아무 것도 없는지 몇 분 정도 기다렸지만 진도에 아무런 변화가 없어 강제로 중단할 수밖에 없었다.다시 docker pull와 같은 렌즈를 다운로드할지, 다운로드 진도는 처음 다운로드한 곳부터 시작하는지, 진도는 아무런 변화가 없습니다.
어쩔 수 없이 반쪽의 렌즈를 찾아서 수동으로 삭제할 수밖에 없다(고체 하드디스크의 공간은 매우 귀중하고 한 렌즈가 G에 가까운 공간을 차지한다).
>docker info
/mnt/sda1/var/lib/docker

docker 홈 디렉터리/var/lib/docker/를 찾을 수 있습니다. 다음 이미지는/var/lib/docker/image에 저장되어 있지만, 절반을 넘긴 이미지는 없습니다.
docker@default:/mnt/sda1/var/lib/docker$ sudo ls
aufs        containers  image       network     tmp         trust       volumes

ls 다음 tmp 디렉터리, 디렉터리 크기는 방금 다운로드한 그림의 절반 크기와 같습니다. 다음 그림이 여기에 있는 것을 볼 수 있습니다. 이 디렉터리를 삭제하고 docker pull을 계속합니다. 다운로드를 계속할 수 없습니다. 어딘가에 다운로드 캐시가 있어야 합니다. 마지막 방법은 docker-machine를 다시 시작합니다.
docker-machine restart

docker pull을 다시 시도해 보았습니다. 드디어 다시 다운로드하기 시작했습니다.
Error checking TLS connection: Error checking and/or regenerating the certs
docker-machine의 IP는 동적 분배이기 때문에 한두 번 다시 시작하면 다른 IP를 분배할 수 있습니다. 인증서를 다시 생성해야 ssh가 docker-machine에 로그인할 수 있습니다.또 다른 해결 방법은 고정 IP를 설정하는 것이다. 다음은 고정 IP를 어떻게 배치하는지 설명한다.
docker-machine 정적 IP 설정
docker-machine의 linux 버전은 Core Linux로 발행판이 아니기 때문에 정적 IP를 직접 설정할 수 없습니다.기계 프로세스를 살펴보면 기본적으로udhcpc를 통해 동적 IP를 얻을 수 있으며, 다시 시작하면 다른 IP를 얻을 수 있습니다.docker-machine env default를 통해 $DOCKERHOST, 그러나 고정 IP가 필요한 경우에는 문제가 발생합니다.자료를 수집한 결과, docker-machine에 고정된 IP가 없음을 발견했습니다. 이것은github에서 issue를 언급한 적이 있습니다. 아직 복구되지 않았습니다. 댓글에 테스트할 수 있는 방법이 있습니다./var/lib/boot2 docker 디렉터리에 새로운bootsync.sh, 파일에 고정 IP 설정
ifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up

그러나 이 방법으로 설정된 IP는 기계가 작동하는 데 20분 정도가 지나면 백엔드에서 시작하는dhcp client에 의해 다시 한 번 IP를 획득하고 IP는 새로운 IP로 설정됩니다.
현재 임시 해결 방안은 두 가지가 있다.
  • dhcp client를 끄고dhcp client 시작 스크립트는 시작 디렉터리/etc/rc.d 찾음, 파일 이름dhcp.sh
  • if [ $DEVICE = "eth1" ]; then
         ifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up
    else
        ...
    fi

    파일 내의 for 순환에 판단 조건을 추가합니다.eth1 카드라면 고정 IP를 설정하고,else 기타 카드는dhcp를 통해 기본적으로 IP를 가져옵니다
  • dhcp client를 끄지 않고 예약된 작업을 작성하고 1분에 한 번 더 IP 설정
  • */1 * * * * ifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up

    좋은 웹페이지 즐겨찾기