Koronavirus.eu - 180 000 návštěv za 10 dní
Zobrazují se odpovědi 1 až 11 z 11

Docker - mysql image, volume

  1. Zdarec, zkouším si rozjet MySql v docker kontejneru, data chci mít u sebe an disku, ale mám nějaký problém s právy. Zkoušel jsem x možností co google poradil, ale pešek. Dík za každou radu)

    Kód:
    version: '3.7'
    
    services:
      db:
        image: mysql:latest
        container_name: test-mysql
        ports:
          - 3307:3306
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: test
          MYSQL_DATABASE: test
          MYSQL_USER: test
          MYSQL_PASSWORD: test
        volumes:
          - /data/mysql:/var/lib/mysql
    volumes:
      mysql_data:
    Kód:
    test-mysql | 2020-01-15 13:49:00+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
    test-mysql | 2020-01-15 13:49:01+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
    test-mysql | 2020-01-15 13:49:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
    test-mysql | 2020-01-15 13:49:01+00:00 [Note] [Entrypoint]: Initializing database files
    test-mysql | 2020-01-15T13:49:01.147377Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    test-mysql | 2020-01-15T13:49:01.147517Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 46
    test-mysql | mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted)
    test-mysql | 2020-01-15T13:51:07.829207Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem
    test-mysql | 2020-01-15T13:51:07.829553Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
    test-mysql | 2020-01-15T13:51:07.830054Z 0 [ERROR] [MY-010119] [Server] Aborting
    test-mysql | 2020-01-15T13:51:09.762689Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
    test-mysql | 2020-01-15 13:51:10+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
    test-mysql | 2020-01-15 13:51:10+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
    test-mysql | 2020-01-15T13:51:11.268293Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    test-mysql | 2020-01-15T13:51:11.268568Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 1
    test-mysql | mysqld: Table 'mysql.plugin' doesn't exist
    test-mysql | 2020-01-15T13:51:13.780108Z 0 [ERROR] [MY-010735] [Server] Could not open the mysql.plugin table. Please perform the MySQL upgrade procedure.
    test-mysql | 2020-01-15T13:51:15.451439Z 0 [Warning] [MY-010015] [Repl] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    test-mysql | 2020-01-15T13:51:15.547613Z 0 [Warning] [MY-000054] [Server] World-writable config file './auto.cnf' is ignored.
    test-mysql | 2020-01-15T13:51:15.548147Z 0 [Warning] [MY-010107] [Server] World-writable config file './auto.cnf' has been removed.
    test-mysql | 2020-01-15T13:51:15.549127Z 0 [Warning] [MY-010075] [Server] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 19351323-379e-11ea-b028-0242ac170002.
    test-mysql | 2020-01-15T13:51:15.965591Z 0 [Warning] [MY-010015] [Repl] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    test-mysql | 2020-01-15T13:51:16.034640Z 0 [Warning] [MY-010069] [Server] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
    test-mysql | mysqld: Cannot change permissions of the file 'private_key.pem' (OS errno 1 - Operation not permitted)
    test-mysql | 2020-01-15T13:51:16.181017Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for private_key.pem
    test-mysql | 2020-01-15T13:51:16.181610Z 0 [ERROR] [MY-010119] [Server] Aborting
    test-mysql | 2020-01-15T13:51:17.197608Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
    test-mysql exited with code 1

  2. Co se právě děje na Webtrhu?
  3. Tak asi upravit práva pro private_key.pem.

    Jinak jsem viděl napr ispconfig včetně mysql databáze v docker, tak se můžeš inspirovat tam.

    Ps: provozovat něco v dokru a obvzlášť tamm mít data doporučuji jen zkušeným linuxovým adminum.

  4. Citace Původně odeslal josef.jebavy Zobrazit příspěvek
    Tak asi upravit práva pro private_key.pem.

    Jinak jsem viděl napr ispconfig včetně mysql databáze v docker, tak se můžeš inspirovat tam.

    Ps: provozovat něco v dokru a obvzlášť tamm mít data doporučuji jen zkušeným linuxovým adminum.
    Mam to na localhostu a prave ze v containeru data chtit nechci, proto jsem si vytvoril na disku slozku kde by se mela inicializovat mysql. Musim si s tim jeste pohrat.

  5. u zmiňovaného souboru private_key.pem musí být write práva pro others nebo vlastník musí být stejné uid jako je mysql v docker containeru. Také nedoporučuji to takhle dělat, když se zasekneš už na tomhle, můžeš velice rychle přijít o data, cesta k provozu mysql v dockeru nemusí být přímočará.

  6. Citace Původně odeslal TomášX Zobrazit příspěvek
    u zmiňovaného souboru private_key.pem musí být write práva pro others nebo vlastník musí být stejné uid jako je mysql v docker containeru. Také nedoporučuji to takhle dělat, když se zasekneš už na tomhle, můžeš velice rychle přijít o data, cesta k provozu mysql v dockeru nemusí být přímočará.
    Prave jsem vsude cetl, ze tohle je nejlepsi varianta jak prave o ty data neprijit. Po smazani containeru zustavaji stale na disku a kdykoliv na dane slozce muzu spustit novy container.

  7. ano, na dané složce spouštít nový container, který se složkou může plně manipulovat a jsi závislý na nějaké bootstrap scripntu unvnitř containeru, který tam autor sám napsal, netušiš co dělá, nemáš nad tím kontrolou a může takhle dojít ke smazání dat jen drobným překlepem, naproti tomu mysql/mariadb z balíčku z oficiálních repositářů je pod kontrolou více lidí, dodržují se určitá pravidla, při povýšení verzí tam máš upgrade průvodce atd. atd.

    Co tě vede k přesvědčení, že v dockeru to budeš mít jednodušší? Neřikám, že to nejde v dockeru udělat jednodušší, ale to znamená nějakou práci, není to samo.

  8. Citace Původně odeslal TomášX Zobrazit příspěvek
    ano, na dané složce spouštít nový container, který se složkou může plně manipulovat a jsi závislý na nějaké bootstrap scripntu unvnitř containeru, který tam autor sám napsal, netušiš co dělá, nemáš nad tím kontrolou a může takhle dojít ke smazání dat jen drobným překlepem, naproti tomu mysql/mariadb z balíčku z oficiálních repositářů je pod kontrolou více lidí, dodržují se určitá pravidla, při povýšení verzí tam máš upgrade průvodce atd. atd.

    Co tě vede k přesvědčení, že v dockeru to budeš mít jednodušší? Neřikám, že to nejde v dockeru udělat jednodušší, ale to znamená nějakou práci, není to samo.

    to je ofic. balicek z docker hubu, pokud jsi mel na mysli tohle. Nechci delat ugprade verze z 5.7 u sebe na lokalu, Tak to zkousim virtualizovat.

  9. dobře, ale zítra nad tou složkou můžeš spustit úplně jiný mysql image a tím právě můžeš přijít o data, jde to snadno.

    Četl jsi popis na stránkách dockeru? V kapitole Running as an arbitrary user je naznačeno, jak vyřešit problém s právy. Složku na svém disku přidělíš určitému uživateli (id:gid) a poté docker spustít pod tím stejným id:gid.

    $ mkdir data
    $ ls -lnd data
    drwxr-xr-x 2 1000 1000 4096 Aug 27 15:54 data
    $ docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

  10. Citace Původně odeslal TomášX Zobrazit příspěvek
    dobře, ale zítra nad tou složkou můžeš spustit úplně jiný mysql image a tím právě můžeš přijít o data, jde to snadno.

    Četl jsi popis na stránkách dockeru? V kapitole Running as an arbitrary user je naznačeno, jak vyřešit problém s právy. Složku na svém disku přidělíš určitému uživateli (id:gid) a poté docker spustít pod tím stejným id:gid.
    Jasně rozumím, mám to hlavně pro dev. Díky vyzkouším.

  11. Citace Původně odeslal ifux Zobrazit příspěvek
    Jasně rozumím, mám to hlavně pro dev. Díky vyzkouším.
    Jestli můžu doporučit, tak je lepší používat docker-compose. Pak se nemíchají projekty a i práce je jednoduší. Pro ukázku se můžete podívat na dev enviroment pro Drupal 8

Spolupracujeme: Jooble.org Hostujeme u Server powered by TELE3