Docker For Mac 느림: 대책 실험(docker-sync)
9142 단어 docker-syncDockerMac
지난번 총결한 자료에서 실제 테스트의 내용을 총결하였다.(인간^-^)
나는 회사 Laravel 프로젝트의 Docker 개발 환경에서 시도한 적이 있다.
문제가 될 수 있는 곳.
우선 Docker-compose입니다.나는 yml을 분석하고 동기화 대상을 결정했다.
docker-composer.yml
version: '2'
services:
mysqldata: <- *1
image: busybox
volumes:
- ./docker/mysql/storage:/var/lib/mysql
mysql:
build: ./docker/mysql
volumes_from:
- mysqldata <- *1
ports:
- ${DOCKER_NUM}4306:3306
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=app_db
php:
container_name: web_php
build: ./docker/php
ports:
- ${DOCKER_NUM}8888:80
- ${DOCKER_NUM}443:443
volumes:
- .:/var/www/html <- *2
links:
- mysql
smtp:
image: phpdockerio/mailhog:latest
ports:
- ${DOCKER_NUM}1025:1025
- ${DOCKER_NUM}8025:8025
「*1」 : DBA현재 속도
나는 Top 화면을 보여 보았다.전체적으로 느리다 (Google 개발자 도구를 보면 20초가 넘는다).특히 Html(DB 관련일 수 있음)은 비교적 느리다.Σ(´Д`)하!!
100M 파일을 생성합니다.Docker 내부에서 실행됩니다.
# time dd if=/dev/zero of=speedtest bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 86.2196 s, 1.2 MB/s
real 1m26.162s
user 0m1.110s
sys 0m8.190s
와우Д오 마이 갓!!이제 Docker-sync를 사용하여 동기화합니다.
동기화로 변경
우선,docker-sync 설치
# gem install docker-sync
Fetching: thor-0.20.3.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
개~(´)з`)・∵.안감# sudo gem install docker-sync
다음은 감시를 위한 물건인데, 이번에는 사용하지 않았다.# brew install fswatch
자신의 컴퓨터에rsync가 설치되어 있기 때문에 생략합니다.("*)실제로 테스트를 해봤는데 큰 동기화라서 파일의 권한 부분에 문제가 많아서 다른 파일도 일부 수정했습니다.
docker-sync.yml
version: '2'
syncs:
document-root:
sync_strategy: rsync
notify_terminal: true
sync_host_ip: 'auto'
sync_host_port: 10872
sync_excludes: [ '.git', '.idea', 'vendor', 'docker', '*.yml' ]
sync_args: '-v'
src: ./
sync_userid: '33'
sync_userid는 Container의 사용자 번호입니다.docker-composer.yml
version: '2'
services:
mysqldata:
image: busybox
mysql:
build: ./docker/mysql
ports:
- ${DOCKER_NUM}4306:3306
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=app_db
php:
container_name: web_php
build: ./docker/php
ports:
- ${DOCKER_NUM}8888:80
- ${DOCKER_NUM}443:443
environment:
- APACHE_RUN_USER=www-data
- APACHE_RUN_GROUP=www-data
volumes:
- document-root:/var/www/html
links:
- mysql
smtp:
image: phpdockerio/mailhog:latest
ports:
- ${DOCKER_NUM}1025:1025
- ${DOCKER_NUM}8025:8025
volumes:
document-root:
external: true
수정 속도
데이터베이스를 동기화하고 불러오지 않았기 때문에 초기 데이터베이스 업데이트가 비교적 빠르다(25분 정도).세상에!!
100미터 파일을 만듭니다.
# time dd if=/dev/zero of=speedtest bs=1024 count=102400
# time dd if=/dev/zero of=speedtest bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 1.41639 s, 74.0 MB/s
real 0m1.432s
user 0m0.140s
sys 0m1.240s
마찬가지로 Top 화면을 표시해 보았습니다.전체적으로 2초 정도 화면이 나온다.♪(´ε` )도전과 의문점
Laravel+Docker+ 개발 환경
Docker For Mac 느림: 대책 - Mutagen 편
Reference
이 문제에 관하여(Docker For Mac 느림: 대책 실험(docker-sync)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/FattyRabbit/items/bfb5a9a321718b7f2756텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)