【初学者】了解Docker的基本信息并掌握连接MySQL的步骤流程
我正在重新学习Rails、SQL和Docker。这次,我将总结并记录了我在Docker方面学到的知识,并引用了一些参考网站。
Docker是什么?
Docker是一个可以隔离数据和程序的工具。在我们使用的个人电脑或服务器上,同时运行着多个程序。比如,在个人电脑上,我们可以同时打开并使用Excel和Word等软件;而在服务器上,同时运行着Apache和MySQL等多个软件。Docker可以将这些多个数据和程序构建在独立的环境中。
【Docker】关于Docker
Docker的特点
- 「コンテナ」と呼ばれる仮想環境を構築する。
【補足】Apacheとは?
Apacheは、無償で利用できるオープンソースのWebサーバーソフトウェアです。 汎用性が高く、WindowsやLinuxなどの様々なOSで動作させることができます。 また、高い安定性と信頼性、動作の軽さから人気を集めており、個人から企業などのエンタープライズ市場まで幅広く利用されています。
引用:Apacheとは。Webサーバーソフトとしての特徴や将来性を解説
Docker的运行机制是怎样的?
Dockerを使うにはいくつかの制限があります。それは、WindowsでもMacでもDockerを使うことが可能ですが、Linuxが必要になることです。これはDockerはLinux OSを使うことを前提に開発されているため、別途Linux環境が必要になります。また、Dockerを使うにもまずは、Docker Engineをインストールしなければなりません。このエンジンはコンテナの作成や移動を実現してくれます。
[Docker]Docker的简介。
换句话说,要使用Docker,需要两个环境。
-
- Linux OS
- Docker Engine
【補足】Docker Engineとは
Dockerのイメージとしては、パソコン上やサーバ上の環境をコンテナという単位で分けて、この独立したコンテナにデータやプログラムなどが入っています。そして、このコンテナを支える仕組みがDocker Engineです。
Dockerを使用するには、Docker Engineというソフトウェアをインストールする必要があります。
引用:【Docker】关于 Docker
【补充】Linux操作系统是什么
-
- Linux OSとは、オープンソースのオペレーティングシステム。
-
- オープンソースとは、世界中に公開されている無料のソースコードのことである。
-
- なので、いろんな企業がLinux OSを使ったサービスを開発している。
- スマートフォンのOS Androidが有名である。
请一定参考以前发布的文章。
无论是Mac还是Windows,都可以使用Docker。
Docker是一个只能在Linux操作系统上运行的软件。只有针对Linux的软件才能被放入容器中。因此,Docker是基于Linux的软件,因此在Mac和Windows上无法运行。但是,通过使用Docker Desktop for Mac和Docker Desktop for Windows,可以使用Docker。这些软件是为Mac和Windows设计的Docker,但是它们在用户看不见的虚拟Linux环境中运行Docker。这个软件可以通过双击来启动,但是实际操作Docker需要使用命令行界面(CLI)。
引用:【Docker】关于Docker的内容
使用Docker的原因和好处
为什么人们使用Docker,有什么原因和好处呢?
-
- マシンへの負荷が軽く、仮想環境の構築から開発作業まで快適に、高速で行える。
-
- 共通の開発環境を簡単に構築できるため、複数人でのチーム開発に便利である。
- Dockerは、1台のマシンの上に複数の環境を構築でき、コスト削減に繋がる。
有种种好处。
想要开始使用Docker,该怎么做?
如果想要开始使用Docker,大部分人可能会使用Windows或Mac。
正如前面所述,Docker是在Linux操作系统环境下运行的,但作为流行的方法,可以安装Docker桌面版。
Docker Desktop for Mac和Docker Desktop for Windows是桌面版的Docker,包含了Docker Engine和Linux操作系统的套件。
Dockerの環境を簡単に構築できます。
Docker的应用实例。
こちらの記事にて、Dockerの活用事例が解説されています。
とても参考になりました。
事例①開発環境の違いを回避
すでに見てきたとおり、Dockerを使うと開発環境の共通化・統一化を実現することができます。Dockerイメージを利用して、独自の環境を配布することも可能です。
大規模なシステムやサービスの開発で、開発にかかわる人数も大規模になっている場合、あるいは日本だけでなく、オフショア拠点を利用して開発している場合、開発環境や検証環境にわずかでも違いがあると、思わぬトラブルやエラーの原因となります。
Dockerを活用すれば、そうしたトラブルやエラーを回避できます。
引用:Dockerって?できることやメリット・デメリットを解説!
事例②クラスタ構成を構築
システムやサービスの拡張性(スケーラビリティ)や可用性(アベイラビリティ)を向上させ、高品質なシステムやサービスを実現するために、複数のサーバを連携させて動作させる「クラスタ構成」を利用することがあります。
クラスタ構成は、ユーザーから見たときに、複数のサーバをあたかも1台のサーバを使っているかのように連携させるので、構築が複雑になりますが、Dockerを使えば、クラスタ環境も複数のコンテナを管理するためのオーケストレーションツールを使って、より簡単に構築できます。
引用:什么是Docker?解释它的功能、优点和缺点!
使用Docker进行环境配置并连接MySQL。
我們將試著使用Docker來建立一個執行MySQL的環境。
在Mac上安装Docker Desktop。
Macを使っている方であれば、公式ドキュメントを参考に、こちらのサイトからインストールを行なっていきます。
创建任意目录
在任何位置上,隨意給一個名字創建一個新的目錄。
创建一个docker-compose.yml文件。
到创建的目录中,并创建一个名为docker-compose.yml的新文件。
$ touch docker-compose.yml
在docker-compose.yml中写入配置。
我們將在創建的文件docker-compose.yml中逐步記錄設置。
version: '3.1'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
platform: linux/x86_64
environment:
MYSQL_ROOT_PASSWORD: ******* #ここには任意のパスワードを記述する
volumes:
- mysql_data:/var/lib/mysql
ports:
- 3308:3306
volumes:
mysql_data:
这段代码的说明
-
- このコードはDocker Composeの設定ファイルで、MySQL 5.7を実行するための設定が記述されている。
- つまり、MySQLのDockerコンテナを起動するための設定を定義している。
version: ‘3.1’ : Docker Composeのバージョンを指定している。
services: : 実行するサービスの設定を開始している。
db: : このサービスの名前をdbとしている。
image: mysql:5.7 : 使用するDockerイメージを指定している。ここではmysql:5.7を指定している。
command: –default-authentication-plugin=mysql_native_password : MySQLサーバーの起動時に実行するコマンドを指定している。
restart: always : コンテナが停止した場合に常に再起動するように指定している。
platform: linux/x86_64 : Dockerプラットフォームを指定している。
environment: : 環境変数の設定を開始している。
MYSQL_ROOT_PASSWORD: ****** : MySQLのrootユーザーのパスワードを******としている。
volumes: : ボリュームの設定を開始している。
mysql_data:/var/lib/mysql : ホストのmysql_dataボリュームとコンテナの/var/lib/mysqlディレクトリをマウントしている。
ports: : ポートの設定を開始している。
3308:3306 : ホストの3308ポートとコンテナの3306ポートをつなげている。
volumes: : グローバルボリュームの設定を開始している。
mysql_data: : ボリュームmysql_dataを作成している。
通过这段描述,定义了启动MySQL Docker容器所需的配置。
启动/停止Docker容器
要启动创建的容器,请执行以下命令。
$ docker compose up
結束工作時,請使用以下指令停止容器。
$ docker compose down
进入或离开容器的内部
启动容器后,通过进入容器内部可以连接MySQL并进行创建数据库等操作。
$ docker compose exec サービス名 bash
此外,当需要从Docker容器内部退出时,请执行以下命令。
# exit
その他、docker-composeコマンドについてこちらの記事が大変参考になりました。
打开Docker桌面应用
MySQLへの接続には、Dockerを立ち上げておく必要があります。
アプリ先ほどインストールしたDocker Desktopを起動させておきましょう。
连接到MySQL数据库
$ docker compose up -d && docker compose exec `db(コンテナ名)` bash
-
- このコードはDocker Composeを使ってコンテナを起動し、その後MySQLのbashに接続するコマンド。
$ docker compose up -d : Docker Composeで定義したサービスを起動する。-dオプションはデタッチモード(バックグラウンド実行)を意味する。
&& : この記号は前のコマンドが成功した場合に後のコマンドを実行する。つまり、Docker Composeでコンテナの起動が成功したら次に進むことである。
docker compose exec db bash : Docker Composeで実行中のdbという名前のサービス(この場合、MySQLのコンテナ)に対してbashコマンドを実行する。これにより、MySQLのコンテナのシェルに接続できる。
全体として、このコードはDockerでMySQLのコンテナを起動し、そのシェルに接続するコマンドである。
退出MySQL
要退出MySQL,请执行以下命令。
mysql> exit
Dockerを起動して入るまでの手順について、こちらでもわかりやすく解説しています。
【Docker-Compose】从启动容器到进入容器需要细心操作
请参考该网站。