2017-12-17 6 views
-1

this을 찾았지만 나에게 적합하지 않습니다.docker-compose 이미지를 다른 호스트에 저장 /로드

내 (정말) 간단 고정 표시기 - compose.yml

version: '3.1' 

services: 

    wordpress: 
    image: wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 

    mysql: 
    image: mysql:5.7 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 

시작 :

docker-compose up 

은 후 용기에 약간의 변화 (워드 프레스에 플러그인과 테마를 설치)을했다.

docker load -i ./test-mysql.tar 
docker load -i ./test-wordpress.tar 

는 이제 고정 표시기 - compose.yml에 변경 :

docker-compose stop 
docker commit main_mysql_1 test-mysql 
docker commit main_wordpress_1 test-wordpress 
docker save test-mysql > test-mysql.tar 
docker save test-wordpress > test-wordpress.tar 

저장을 다른 시스템에있는 두 개의 타르 파일을로드

version: '3.1' 

services: 

    wordpress: 
    image: test-wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 

    mysql: 
    image: test-mysql 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 

을하지만 용기는 시작 처음부터 wordpress. 완료된 작업 (플러그인, 테마 등)은 보존되지 않았습니다.

내 실수는 무엇입니까? 이 개인적인 목적을 위해 온라인 저장소를 사용하고 싶지 않습니다 ... 두 호스트 사이에서 컨테이너를 통과하는 더 간단하고 강력한 절차를 제안 할 수 있습니까? 볼륨이


해결 방법 : 모든

version: '3.1' 

services: 

    wordpress: 
    container_name: GREB_wordpress  
    image: wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 
    volumes: 
     - ./www:/var/www/html 

    mysql: 
    container_name: GREB_mysql 
    image: mysql:5.7 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 
    volumes: 
     - ./mysql_data:/var/lib/mysql 
+0

I을 완전히 볼륨을 놓친 :) – elbowz

답변

0

내가 내 자신에 대답 ...

첫째, 고정 표시기 볼륨 이미지 및/또는 용기의 일부가 아닙니다. 따라서 이것들은 도커 이미지 (docker save)를 더 멀리 저장해야합니다. 고정 표시기 파일 시스템, 볼륨, RO/RW 층의 더 나은 이해를 위해

, 는 http://container-solutions.com/understanding-volumes-docker/을 읽을 수 있습니다.

그림 밖으로 경우 우리의 이미지 사용 볼륨 (추구 "볼륨"키) : 당신은 I로 (잘 이해하기위한 documentation을 고정 표시기 참조) 볼륨을 사용하는 다른 장점을 가지고
docker inspect image_name

/O 성능 .

백업 볼륨 끝 :

  • 간단하게 백업 볼륨은 예를 들어, 폴더 tar -cvzPf volume_name_backup.tar.gz /var/lib/docker/volumes/VOLUME_NAME ... 그리고 당신은 또한 DB를 덤프 할 수 있습니다 (MySQL의 내 경우처럼) DB 이미지의 경우 다른 고정 표시기 컨테이너
  • 을 통해 같은 장소
  • Backup, restore, or migrate data volumes에 복원 : docker exec mysql_container /usr/bin/mysqldump -u root --password=root --all-databases > mysql_dump_backup.sql