{"id":35127,"date":"2023-04-01T22:11:27","date_gmt":"2023-11-15T07:45:12","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/"},"modified":"2024-04-29T21:32:28","modified_gmt":"2024-04-29T13:32:28","slug":"%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/","title":{"rendered":"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL"},"content":{"rendered":"<h1>\u5c1d\u8bd5\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker + MySQL\u3002<\/h1>\n<p>\u4e0b\u6b21\u7684\u524d\u63d0\u662fUbuntu\u73af\u5883\u5df2\u7ecf\u521b\u5efa\u5b8c\u6210\uff0c\u8981\u5b9e\u73b0\u4e0eexpress\u8fde\u63a5\u5e76\u67e5\u770b\u5176\u5185\u5bb9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">PC\u74b0\u5883<\/ul>\n<\/li>\n<\/ul>\n<p>Vagrant 2.2.7<\/p>\n<p>VirtualBox 6.1.2<\/p>\n<p>Ubuntu 18.04<\/p>\n<p>\u3053\u3053\u306b Docker-CE + MySQL \u3092\u5165\u308c\u3066\u3044\u304f<br \/>\n\u4fbf\u5229\u306a\u306e\u3067 Docker-Compose \u3082\u4f7f\u3046\u3088<\/p>\n<h2>\u5b89\u88c5Docker<\/h2>\n<p>\u53ea\u8981\u53c2\u8003\u7f51\u7ad9\u4e00\u8fb9\u64cd\u4f5c\uff0c\u5e94\u8be5\u4e0d\u4f1a\u6709\u4ec0\u4e48\u95ee\u9898\u3002<\/p>\n<h3>Docker \u5b89\u88c5\u524d\u7684\u51c6\u5907\u5de5\u4f5c<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># apt\u66f4\u65b0<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get update\r\n\r\n<span class=\"c\"># apt\u304cHTTPS\u7d4c\u7531\u3067\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install <\/span>apt-transport-https ca-certificates curl software-properties-common\r\n\r\n<span class=\"c\"># Docker\u516c\u5f0fGPG\u30ad\u30fc\u8ffd\u52a0<\/span>\r\n<span class=\"nv\">$ <\/span>curl <span class=\"nt\">-fsSL<\/span> https:\/\/download.docker.com\/linux\/ubuntu\/gpg | <span class=\"nb\">sudo <\/span>apt-key add -\r\n\r\n<span class=\"c\"># \u30ad\u30fc\u3092\u78ba\u8a8d<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-key fingerprint 0EBFCD88\r\n\r\n<span class=\"c\"># stable\u8a2d\u5b9a<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>add-apt-repository <span class=\"se\">\\<\/span>\r\n   <span class=\"s2\">\"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu <\/span><span class=\"se\">\\<\/span>\r\n   <span class=\"si\">$(<\/span>lsb_release <span class=\"nt\">-cs<\/span><span class=\"si\">)<\/span> <span class=\"se\">\\<\/span><span class=\"s2\">\r\n   stable\"<\/span>\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5Docker<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># apt\u66f4\u65b0<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get update\r\n\r\n<span class=\"c\"># \u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install <\/span>docker-ce\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5 Docker \u540e\u7684\u5bf9\u8bdd<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># docker \u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210\u3059\u308b<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>groupadd docker\r\n\r\n<span class=\"c\"># \u30e6\u30fc\u30b6\u3092 docker \u30b0\u30eb\u30fc\u30d7\u306b\u8ffd\u52a0\u3059\u308b<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>usermod <span class=\"nt\">-aG<\/span> docker <span class=\"nv\">$USER<\/span>\r\n\r\n<span class=\"c\"># \u518d\u8d77\u52d5\u3057\u3066\u30b0\u30eb\u30fc\u30d7\u30e1\u30f3\u30d0\u30fc\u30b7\u30c3\u30d7\u3092\u8a8d\u8b58\u3055\u305b\u308b<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>reboot\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c\"># sudo \u306a\u3057\u3067 docker \u304c\u52d5\u304f\u306e\u3092\u78ba\u8a8d<\/span>\r\n<span class=\"nv\">$ <\/span>docker run hello-world\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662f\u53ef\u80fd\u4f1a\u51fa\u73b0\u7684\u5185\u5bb9\u3002\u7531\u4e8e\u65f6\u673a\u7b49\u65b9\u9762\u7684\u539f\u56e0\uff0c\u6458\u8981\u53ef\u80fd\u4f1a\u53d1\u751f\u53d8\u5316\u3002<\/p>\n<pre class=\"post-pre\"><code>Unable to find image 'hello-world:latest' locally\r\nlatest: Pulling from library\/hello-world\r\n1b930d010525: Pull complete\r\nDigest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f\r\nStatus: Downloaded newer image for hello-world:latest\r\n\r\nHello from Docker!\r\nThis message shows that your installation appears to be working correctly.\r\n\r\nTo generate this message, Docker took the following steps:\r\n 1. The Docker client contacted the Docker daemon.\r\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\r\n    (amd64)\r\n 3. The Docker daemon created a new container from that image which runs the\r\n    executable that produces the output you are currently reading.\r\n 4. The Docker daemon streamed that output to the Docker client, which sent it\r\n    to your terminal.\r\n\r\nTo try something more ambitious, you can run an Ubuntu container with:\r\n $ docker run -it ubuntu bash\r\n\r\nShare images, automate workflows, and more with a free Docker ID:\r\n https:\/\/hub.docker.com\/\r\n\r\nFor more examples and ideas, visit:\r\n https:\/\/docs.docker.com\/get-started\/\r\n<\/code><\/pre>\n<h3>\u5b89\u88c5Docker-Compose<\/h3>\n<p>\u53ef\u80fd\u7684\u7ffb\u8bd1\u5982\u4e0b\uff1a<br \/>\n\u5c3d\u91cf\u9009\u62e9\u6700\u65b0\u7684\u53ef\u80fd\u6bd4\u8f83\u597d\u3002<br \/>\n\u6700\u65b0\u7248\u672c\u53ef\u4ee5\u5728Docker compose\u53d1\u5e03\u9875\u9762\u627e\u5230\u3002<br \/>\n\u73b0\u5728\u6700\u65b0\u7684\u7248\u672c\u662f1.25.4\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u6700\u65b0\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>curl <span class=\"nt\">-L<\/span> <span class=\"s2\">\"https:\/\/github.com\/docker\/compose\/releases\/download\/1.25.4\/docker-compose-<\/span><span class=\"si\">$(<\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-s<\/span><span class=\"si\">)<\/span><span class=\"s2\">-<\/span><span class=\"si\">$(<\/span><span class=\"nb\">uname<\/span> <span class=\"nt\">-m<\/span><span class=\"si\">)<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">-o<\/span> \/usr\/local\/bin\/docker-compose\r\n\r\n<span class=\"c\"># \u5b9f\u884c\u6a29\u9650\u3092\u4ed8\u4e0e<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo chmod<\/span> +x \/usr\/local\/bin\/docker-compose\r\n\r\n<span class=\"c\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u78ba\u8a8d<\/span>\r\n<span class=\"nv\">$ <\/span>docker-compose <span class=\"nt\">--version<\/span>\r\n<\/code><\/pre>\n<p>\u5f53\u786e\u8ba4\u5b89\u88c5\u65f6\uff0c\u5c06\u4ea7\u751f\u4ee5\u4e0b\u7c7b\u4f3c\u8f93\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code>docker-compose version 1.25.4, build 8d51620a\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5MySQL<\/h2>\n<p>\u6211\u67e5\u4e86\u5f88\u591a\u5176\u4ed6\u7684\u7f51\u7ad9\uff0c\u4f46\u662f\u89c9\u5f97\u6709\u4e9b\u5730\u65b9\u4e0d\u592a\u660e\u767d\uff0c\u6240\u4ee5\u6211\u8981\u6574\u7406\u4e00\u4e0b\u653e\u5728\u624b\u8fb9\u3002<\/p>\n<p>\u5982\u679c\u662f\u4f7f\u7528 Express \u548c MySQL\uff0c\u6211\u8ba4\u4e3a\u53ef\u4ee5\u53c2\u8003\u8fd9\u4e2a\u5730\u65b9\u3002<br \/>\n\u6700\u7ec8\u60f3\u8981\u505a\u7684\u662f\u51c6\u5907\u4ee5\u4e0b\u4e24\u4e2a\u670d\u52a1\u5668\uff0c\u4ece Express \u4e2d\u5f15\u7528 MySQL \u7684\u6570\u636e\u5e76\u4f7f\u7528\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Node.js + Express (+ MySQL Client) \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b Ubuntu 18.04 \u30b5\u30fc\u30d0\u30fc\uff1f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker-CE(+ Docker-Compose) + MySQL + Redis \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b Ubuntu 18.04 \u30b5\u30fc\u30d0\u30fc\uff1f \u2605\u4eca\u3084\u3063\u3066\u308b\u306e\u306f\u30b3\u30ec\u2605<\/ul>\n<p>\u6211\u4e4b\u524d\u771f\u7684\u6ca1\u610f\u8bc6\u5230\u5fc5\u987b\u5728Express\u4e0a\u5b89\u88c5MySQL\u624d\u80fd\u4f7f\u7528\uff0c\u771f\u662f\u4e0d\u597d\u610f\u601d\u5462\u2026\u2026\u54b3\u54b3\u3002\u5728\u4e2d\u9014\u65f6\u5dee\u70b9\u60f3\u8981\u653e\u5f03\uff0c\u8bf4\u4e0d\u5982\u5c31\u5728\u540c\u4e00\u4e2a\u670d\u52a1\u5668\u4e0a\u5427\u3002<\/p>\n<h3>\u5728Docker-CE\uff08\u52a0\u4e0aDocker-Compose\uff09\u4e4b\u4e0a\uff0c\u5b89\u88c5MySQL\u3002<\/h3>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u53ef\u4f7f\u7528MySQL\u7684\u73af\u5883\u3002\u6587\u4ef6\u7ed3\u6784\u7b49\u65b9\u9762\u53ef\u4ee5\u53c2\u8003\u8fd9\u91cc\u3002<\/p>\n<p>\u6240\u4ee5\u7ed3\u6784\u4f1a\u4fdd\u6301\u4e0d\u53d8\u3002<\/p>\n<pre class=\"post-pre\"><code>MySQLTest\/\r\n\u251c\u2500\u2500 docker\/\r\n\u2502   \u2514\u2500\u2500 db\/\r\n\u2502       \u251c\u2500\u2500 data\/\r\n\u2502       \u251c\u2500\u2500 my.cnf\r\n\u2502       \u2514\u2500\u2500 sql\/\r\n\u2502           \u251c\u2500\u2500 001-create-tables.sql\r\n\u2502           \u2514\u2500\u2500 init-database.sh\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u2514\u2500\u2500 init-mysql.sh\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u4e0d\u60f3\u8bbe\u4e3a\u5168\u5c40\uff0c\u6240\u4ee5\u4ece\u521b\u5efa\u6587\u4ef6\u5939\u5f00\u59cb\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir <\/span>MySQLTest\r\n<span class=\"nb\">cd <\/span>MySQLTest\r\n<\/code><\/pre>\n<p>\u5b89\u88c5MySQL<\/p>\n<pre class=\"post-pre\"><code>npm <span class=\"nb\">install <\/span>mysql <span class=\"nt\">--save<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u7a0d\u540e\u521b\u5efa\u7684docker-compose.yml\u6587\u4ef6\u4e2d\uff0c\u4efb\u4f55\u4e0d\u5b58\u5728\u7684\u6587\u4ef6\u5939\u90fd\u4f1a\u81ea\u52a8\u521b\u5efa\uff0c<br \/>\n\u4f46\u662f\u6211\u60f3\u8981\u5c06my.cnf\u4f5c\u4e3a\u6587\u4ef6\u521b\u5efa\uff0c\u6240\u4ee5\u8bf7\u63d0\u524d\u521b\u5efa\u597d\u76f8\u5e94\u7684\u6587\u4ef6\u5939\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir <\/span>docker\r\n<span class=\"nb\">cd <\/span>docker\r\n<span class=\"nb\">mkdir <\/span>db\r\n<span class=\"nb\">cd <\/span>db\r\n<\/code><\/pre>\n<p>\u6253\u5f00 nano\uff08\u6587\u672c\u7f16\u8f91\u5668\uff09\uff0c\u521b\u5efa my.cnf \u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>nano my.cnf\r\n<\/code><\/pre>\n<p>\u8fd9\u91cc\u662f my.cnf \u7684\u5185\u5bb9\u3002\u5b83\u662f\u5173\u4e8e\u5b57\u7b26\u7f16\u7801\u7684\u8bbe\u7f6e\u3002\u8bf7\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5e76\u4fdd\u5b58\u4e0b\u6765\u3002<\/p>\n<pre class=\"post-pre\"><code>[mysqld]\r\ncharacter-set-server=utf8mb4\r\ncollation-server=utf8mb4_unicode_ci\r\n\r\n[client]\r\ndefault-character-set=utf8mb4\r\n<\/code><\/pre>\n<p>\u4e0b\u4e00\u6b65\uff0c\u6211\u4eec\u5c06\u521b\u5efa\u4e00\u4e2adocker-compose.yml\u6587\u4ef6\u3002\u8bf7\u8fd4\u56de\u5230MySQLTest\u6587\u4ef6\u5939\uff0c\u7136\u540e\u4f7f\u7528nano\u6587\u672c\u7f16\u8f91\u5668\u521b\u5efadocker-compose.yml\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">cd<\/span> ..\/..\/ <span class=\"c\">#db\u30d5\u30a9\u30eb\u30c0\u306b\u5c45\u305f\u3089MySQLTest\u306b\u623b\u308b\u3001\u305d\u3046\u3058\u3083\u306a\u3051\u308c\u3070\u7121\u8996\u3057\u3066<\/span>\r\n<span class=\"nb\">sudo <\/span>nano docker-compose.yml\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662fdocker-compose.yml\u7684\u5167\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">3'<\/span>\r\n\r\n<span class=\"na\">services<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"c1\"># MySQL<\/span>\r\n  <span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql_host<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">root<\/span>\r\n        <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">test_database<\/span>\r\n        <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">docker<\/span>\r\n        <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">docker<\/span>\r\n        <span class=\"na\">TZ<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">Asia\/Tokyo'<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">mysqld<\/span> <span class=\"s\">--character-set-server=utf8mb4<\/span> <span class=\"s\">--collation-server=utf8mb4_unicode_ci\"<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">.\/docker\/db\/data:\/var\/lib\/mysql<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">.\/docker\/db\/my.cnf:\/etc\/mysql\/conf.d\/my.cnf<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">.\/docker\/db\/sql:\/docker-entrypoint-initdb.d<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">3306:3306<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e00\u4e2a\u7528\u4e8e\u521d\u59cb\u5316MySQL\u7684shell\u811a\u672c\u3002\u5728\u4e0edocker-compose.yml\u76f8\u540c\u7684\u4f4d\u7f6e\u521b\u5efa\u4e00\u4e2a\u540d\u4e3ainit-mysql.sh\u6587\u4ef6\uff0c\u5176\u5185\u5bb9\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/sh<\/span>\r\ndocker-compose <span class=\"nb\">exec <\/span>db bash <span class=\"nt\">-c<\/span> <span class=\"s2\">\"chmod 0775 docker-entrypoint-initdb.d\/init-database.sh\"<\/span>\r\ndocker-compose <span class=\"nb\">exec <\/span>db bash <span class=\"nt\">-c<\/span> <span class=\"s2\">\".\/docker-entrypoint-initdb.d\/init-database.sh\"<\/span>\r\n<\/code><\/pre>\n<h3>\u542f\u52a8\u548c\u505c\u6b62Docker<\/h3>\n<pre class=\"post-pre\"><code>docker-compose up <span class=\"nt\">-d<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e86\u6587\u4ef6\u5939\uff0c\u786e\u8ba4 Docker \u5df2\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>docker-compose ps\r\n<\/code><\/pre>\n<p>\u8fd0\u884c\u2191\u7684\u547d\u4ee4\u4f1a\u8f93\u51fa\u8fd9\u6837\u7684\u7ed3\u679c\u3002\u770b\u8d77\u6765\u4f1a\u663e\u793a\u4e00\u4e2a\u5217\u8868\u3002<\/p>\n<pre class=\"post-pre\"><code>   Name                 Command               State                 Ports\r\n---------------------------------------------------------------------------------------\r\nmysql_host   docker-entrypoint.sh mysql ...   Up      0.0.0.0:3306-&gt;3306\/tcp, 33060\/tcp\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u8fd8\u8981\u5199\u548c\u51c6\u5907\u5176\u4ed6\u7684\u4e1c\u897f\uff0c\u6240\u4ee5\u6682\u65f6\u7ed3\u675f\u3002<br \/>\n\u5982\u679c\u5728docker-compose.yml\u91cc\u5199\u4e86\uff0c\u5c31\u53ef\u4ee5\u4e00\u8d77\u5904\u7406\uff0c\u5f88\u65b9\u4fbf\u3002<\/p>\n<pre class=\"post-pre\"><code>docker-compose down\r\n<\/code><\/pre>\n<h3>\u5236\u4f5c\u5269\u4f59\u7684\u6587\u4ef6<\/h3>\n<p>\u521a\u521a\u6ca1\u505a\u7684\uff0c\u6211\u4f1a\u521b\u5efa 001-create-tables.sql \u548c init-database.sh\u3002<\/p>\n<pre class=\"post-pre\"><code>MySQLTest\/\r\n\u251c\u2500\u2500 docker\/\r\n\u2502   \u2514\u2500\u2500 db\/\r\n\u2502       \u251c\u2500\u2500 data\/\r\n\u2502       \u251c\u2500\u2500 my.cnf\r\n\u2502       \u2514\u2500\u2500 sql\/\u3000\u3000\u2193\u3053\u306e\uff12\u3064\r\n\u2502           \u251c\u2500\u2500 001-create-tables.sql\r\n\u2502           \u2514\u2500\u2500 init-database.sh\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u2514\u2500\u2500 init-mysql.sh\r\n<\/code><\/pre>\n<h4>\u521b\u5efa001-create-tables.sql\u6587\u4ef6<\/h4>\n<p>\u5728SQL\u6587\u4ef6\u5939\u4e2d\u6253\u5f00\u6587\u672c\u7f16\u8f91\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c1\">---- drop ----<\/span>\r\n<span class=\"k\">DROP<\/span> <span class=\"k\">TABLE<\/span> <span class=\"n\">IF<\/span> <span class=\"k\">EXISTS<\/span> <span class=\"nv\">`test_table`<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"c1\">---- create ----<\/span>\r\n<span class=\"k\">create<\/span> <span class=\"k\">table<\/span> <span class=\"n\">IF<\/span> <span class=\"k\">not<\/span> <span class=\"k\">exists<\/span> <span class=\"nv\">`test_table`<\/span>\r\n<span class=\"p\">(<\/span>\r\n <span class=\"nv\">`id`<\/span>               <span class=\"nb\">INT<\/span><span class=\"p\">(<\/span><span class=\"mi\">20<\/span><span class=\"p\">)<\/span> <span class=\"n\">AUTO_INCREMENT<\/span><span class=\"p\">,<\/span>\r\n <span class=\"nv\">`name`<\/span>             <span class=\"nb\">VARCHAR<\/span><span class=\"p\">(<\/span><span class=\"mi\">20<\/span><span class=\"p\">)<\/span> <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span><span class=\"p\">,<\/span>\r\n <span class=\"nv\">`created_at`<\/span>       <span class=\"nb\">Datetime<\/span> <span class=\"k\">DEFAULT<\/span> <span class=\"k\">NULL<\/span><span class=\"p\">,<\/span>\r\n <span class=\"nv\">`updated_at`<\/span>       <span class=\"nb\">Datetime<\/span> <span class=\"k\">DEFAULT<\/span> <span class=\"k\">NULL<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"k\">PRIMARY<\/span> <span class=\"k\">KEY<\/span> <span class=\"p\">(<\/span><span class=\"nv\">`id`<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">)<\/span> <span class=\"k\">DEFAULT<\/span> <span class=\"n\">CHARSET<\/span><span class=\"o\">=<\/span><span class=\"n\">utf8<\/span> <span class=\"k\">COLLATE<\/span><span class=\"o\">=<\/span><span class=\"n\">utf8_bin<\/span><span class=\"p\">;<\/span>\r\n<\/code><\/pre>\n<p>\u5c06\u5176\u4fdd\u5b58\u4e3a001-create-tables.sql\u3002<\/p>\n<h4>\u521b\u5efa init-database.sh \u6587\u4ef6<\/h4>\n<p>\u5728SQL\u6587\u4ef6\u5939\u4e2d\u6253\u5f00\u6587\u672c\u7f16\u8f91\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/usr\/bin\/env bash<\/span>\r\n<span class=\"c\">#wait for the MySQL Server to come up<\/span>\r\n<span class=\"c\">#sleep 90s<\/span>\r\n\r\n<span class=\"c\">#run the setup script to create the DB and the schema in the DB<\/span>\r\nmysql <span class=\"nt\">-u<\/span> docker <span class=\"nt\">-pdocker<\/span> test_database &lt; <span class=\"s2\">\"\/docker-entrypoint-initdb.d\/001-create-tables.sql\"<\/span>\r\n<\/code><\/pre>\n<p>\u5c06\u6b64\u4fdd\u5b58\u4e3a init-database.sh\u3002<br \/>\n\u4e0d\u5fc5\u62c5\u5fc3\u6267\u884c\u6743\u9650\uff0c\u56e0\u4e3a\u5df2\u5728 init-mysql.sh \u4e2d\u8fdb\u884c\u4e86 chmod \u5904\u7406\u3002<\/p>\n<h2>MySQL\u542f\u52a8\u5e76\u8f93\u5165\u5e76\u663e\u793a\u6570\u636e\u3002<\/h2>\n<p>\u7ec8\u4e8e\u51c6\u5907\u5c31\u7eea\u4e86\uff0c\u53ef\u4ee5\u6267\u884cinit-mysql.sh\u811a\u672c\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>MySQLTest\/\r\n\u251c\u2500\u2500 docker\/\r\n\u2502   \u2514\u2500\u2500 db\/\r\n\u2502       \u251c\u2500\u2500 data\/\r\n\u2502       \u251c\u2500\u2500 my.cnf\r\n\u2502       \u2514\u2500\u2500 sql\/\r\n\u2502           \u251c\u2500\u2500 001-create-tables.sql\r\n\u2502           \u2514\u2500\u2500 init-database.sh\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u2514\u2500\u2500 init-mysql.sh \u2190\u30b3\u30ec\r\n<\/code><\/pre>\n<h3>\u8fdb\u884c\u6570\u636e\u5e93\u521d\u59cb\u5316\uff08shell\u6267\u884c\uff09<\/h3>\n<pre class=\"post-pre\"><code>.\/init-mysql.sh\r\n<\/code><\/pre>\n<p>\u6570\u636e\u5e93\u5df2\u7ecf\u5efa\u7acb\uff08\u8868\u662f\u7a7a\u7684\uff09\uff0c\u6240\u4ee5\u9700\u8981\u786e\u8ba4\u3002<\/p>\n<h4>\u8fde\u63a5\u5230MySQL\u6570\u636e\u5e93<\/h4>\n<p>\u5c06 mysql_host \u8bbe\u4e3a\u4e0e docker-compose.yml \u7684 container_name \u76f8\u540c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> mysql_host bash\r\n<\/code><\/pre>\n<p>\u5f53\u8fde\u63a5\u6210\u529f\u65f6\uff0c\u5c06\u4ea7\u751f\u4ee5\u4e0b\u7c7b\u4f3c\u7684\u8f93\u51fa\u3002\uff08\u7531\u4e8e\u5bb9\u5668\u7684ID\u5728root@\u4e4b\u540e\uff0c\u6240\u4ee5\u4e0d\u5e94\u8be5\u76f8\u540c\uff09<\/p>\n<pre class=\"post-pre\"><code>root@ff7eb30d5b23:\/#\r\n<\/code><\/pre>\n<p>\u8ba9\u6211\u4eec\u767b\u5f55MySQL\uff0c\u68c0\u67e5\u6570\u636e\u5e93\u662f\u5426\u5df2\u521b\u5efa\u597d\u4e86\u3002<br \/>\n\u8bf7\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code>mysql -uroot -p\r\n<\/code><\/pre>\n<h4>\u6307\u5b9a\u4f7f\u7528\u7684\u6570\u636e\u5e93<\/h4>\n<p>\u6267\u884c&#8221;use test_database;&#8221;\u7684\u8bed\u53e5\u3002<br \/>\n\u2193\u7c7b\u4f3c\u8fd9\u6837<\/p>\n<pre class=\"post-pre\"><code>mysql&gt; use test_database;\r\nReading table information for completion of table and column names\r\nYou can turn off this feature to get a quicker startup with -A\r\n\r\nDatabase changed\r\nmysql&gt;\r\n<\/code><\/pre>\n<h4>\u5c55\u793a\u684c\u5b50<\/h4>\n<p>\u5982\u679c\u6709\u6570\u636e\u7684\u8bdd\uff0c\u4f1a\u53d8\u6210\u50cf\u2193\u8fd9\u6837\uff0c<br \/>\n\u5982\u679c\u6ca1\u6709\u7684\u8bdd\uff0c\u4f1a\u663e\u793a &#8220;0\u884c\u8bb0\u5f55\u53d7\u5f71\u54cd\uff080.00\u79d2\uff09&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code>mysql&gt; SELECT * FROM test_table;\r\n+----+------+---------------------+---------------------+\r\n| id | name | created_at          | updated_at          |\r\n+----+------+---------------------+---------------------+\r\n|  1 | TOM  | 2020-02-06 00:00:00 | 2020-02-06 00:00:00 |\r\n+----+------+---------------------+---------------------+\r\n1 row in set (0.00 sec)\r\n\r\nmysql&gt;\r\n<\/code><\/pre>\n<p>\u5982\u679c\u684c\u5b50\u672c\u8eab\u6ca1\u6709\u7684\u8bdd\uff0c\u60c5\u51b5\u4f1a\u53d8\u6210\u8fd9\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code>mysql&gt; SELECT * FROM table;\r\nERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table' at line 1\r\nmysql&gt;\r\n<\/code><\/pre>\n<h4>\u5728\u684c\u5b50\u4e0a\u8f93\u5165\u6570\u636e<\/h4>\n<p>\u9996\u5148\uff0c\u4f7f\u7528SQL\u8bed\u53e5\u8fdb\u884c\u8f93\u5165\u3002<\/p>\n<pre class=\"post-pre\"><code>INSERT INTO test_table (id,name,created_at,updated_at) VALUES (1, 'TOM','2020-02-06', '2020-02-06');\r\n<\/code><\/pre>\n<p>\u5982\u679c\u8f93\u5165\u6b63\u786e\uff0c\u5c31\u4f1a\u53d8\u6210\u8fd9\u6837\u3002 , ji\u00f9 hu\u00ec .)<\/p>\n<pre class=\"post-pre\"><code>mysql&gt; INSERT INTO test_table (id,name,created_at,updated_at) VALUES (1, 'TOM', '2020-02-06', '2020-02-06');\r\nQuery OK, 1 row affected (0.04 sec)\r\n\r\nmysql&gt;\r\n<\/code><\/pre>\n<p>\u518d\u6b21\u5c1d\u8bd5\u663e\u793a\u8868\u683c\u540e\uff0c\u4f1a\u53d8\u6210\u2193\u8fd9\u6837<\/p>\n<pre class=\"post-pre\"><code>mysql&gt; SELECT * FROM test_table;\r\n+----+------+---------------------+---------------------+\r\n| id | name | created_at          | updated_at          |\r\n+----+------+---------------------+---------------------+\r\n|  1 | TOM  | 2020-02-06 00:00:00 | 2020-02-06 00:00:00 |\r\n+----+------+---------------------+---------------------+\r\n1 row in set (0.00 sec)\r\n\r\nmysql&gt;\r\n<\/code><\/pre>\n<p>\u5b8c\u6210\u4e86\u521b\u5efa\u6837\u672c\u6570\u636e\u7684\u90e8\u5206\u3002<br \/>\n\u7528&#8221;exit&#8221;\u547d\u4ee4\u9000\u51fa\u3002<\/p>\n<h1>\u8bf7\u63d0\u4f9b\u4ee5\u4e0b\u5185\u5bb9\u7684\u4e2d\u6587\u672c\u5730\u5316\u8bed\u53e5\uff0c\u53ea\u9700\u4e00\u79cd\u9009\u9879\uff1a<\/h1>\n<p>\u53c2\u8003<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker\u306e\u8a71<\/ul>\n<\/li>\n<\/ul>\n<p>https:\/\/qiita.com\/shubatto\/items\/105f5b90e1cd91ba7c4c\/<\/p>\n<p>Docker\u516c\u5f0f\u306e\u8a71<\/p>\n<p>https:\/\/docs.docker.com\/install\/linux\/docker-ce\/ubuntu\/<\/p>\n<p>Node.js\u3068Express\u3068MySQL\u306e\u7c21\u5358\u30b5\u30f3\u30d7\u30eb<\/p>\n<p>https:\/\/qiita.com\/tiwu_official\/items\/9ffc8e1fd1173b1a9e40<\/p>\n<p>docker-compose \u3067MySQL\u74b0\u5883\u7c21\u5358\u69cb\u7bc9<\/p>\n<p>https:\/\/qiita.com\/A-Kira\/items\/f401aea261693c395966<\/p>\n<p>Docker compose release page<\/p>\n<p>https:\/\/github.com\/docker\/compose\/releases\/<\/p>\n<p>\u521d\u5fc3\u8005\u5411\u3051docker-compose\u30b3\u30de\u30f3\u30c9\u9006\u5f15\u304d<\/p>\n<p>https:\/\/qiita.com\/okyk\/items\/a374ddb3f853d1688820<\/p>\n<p>docker-compose\u3067MySQL5.7\u3092\u8d77\u52d5\u3057\u3066\u63a5\u7d9a\u3057\u3066\u307f\u305f<\/p>\n<p>https:\/\/qiita.com\/MJ-Hippos\/items\/58d0f98a15656ed65136<\/p>\n<p>MySQL\u306e\u8a71<\/p>\n<p>https:\/\/qiita.com\/astrsk_hori\/items\/e3d6c237d68be1a6f548<\/p>\n<p>MySQL, Redis\u3092\u5229\u7528\u3059\u308b\u958b\u767a\u74b0\u5883\u3092 Docker CE \u3067\u69cb\u7bc9\u3059\u308b<\/p>\n<p>https:\/\/qiita.com\/rubytomato@github\/items\/79792a6e4bf205dd4bee<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5c1d\u8bd5\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker + MySQL\u3002 \u4e0b\u6b21\u7684\u524d\u63d0\u662fUbuntu\u73af\u5883\u5df2\u7ecf\u521b\u5efa\u5b8c\u6210\uff0c\u8981\u5b9e\u73b0 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35127","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-ubuntu-\u4e0a\u5b89\u88c5-docker\uff08-docker-compose\uff09-mysql\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL\" \/>\n<meta property=\"og:description\" content=\"\u5c1d\u8bd5\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker + MySQL\u3002 \u4e0b\u6b21\u7684\u524d\u63d0\u662fUbuntu\u73af\u5883\u5df2\u7ecf\u521b\u5efa\u5b8c\u6210\uff0c\u8981\u5b9e\u73b0 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-ubuntu-\u4e0a\u5b89\u88c5-docker\uff08-docker-compose\uff09-mysql\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-15T07:45:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T13:32:28+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/\",\"name\":\"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-15T07:45:12+00:00\",\"dateModified\":\"2024-04-29T13:32:28+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-ubuntu-\u4e0a\u5b89\u88c5-docker\uff08-docker-compose\uff09-mysql\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL","og_description":"\u5c1d\u8bd5\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker + MySQL\u3002 \u4e0b\u6b21\u7684\u524d\u63d0\u662fUbuntu\u73af\u5883\u5df2\u7ecf\u521b\u5efa\u5b8c\u6210\uff0c\u8981\u5b9e\u73b0 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-ubuntu-\u4e0a\u5b89\u88c5-docker\uff08-docker-compose\uff09-mysql\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-15T07:45:12+00:00","article_modified_time":"2024-04-29T13:32:28+00:00","author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/","name":"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-15T07:45:12+00:00","dateModified":"2024-04-29T13:32:28+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728 Ubuntu \u4e0a\u5b89\u88c5 Docker\uff08+ Docker-Compose\uff09+ MySQL"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-ubuntu-%e4%b8%8a%e5%ae%89%e8%a3%85-docker%ef%bc%88-docker-compose%ef%bc%89-mysql%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35127"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35127\/revisions"}],"predecessor-version":[{"id":87762,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35127\/revisions\/87762"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}