1. 程式人生 > >Michael Wing's workspace

Michael Wing's workspace

Docker開源映象

前面我們已經安裝好了Docker,也簡單瞭解了Docker。那麼我們可以嘗試搭建一個MySQL服務。

要搭建服務就要啟動服務容器,要建立容易就要有映象,Docker提供了一個類似Github的開源平臺,提供開源映象,放心可靠。(畢竟大家都看著原始碼呢)

大概步驟

1. 下載MySQL映象 2. 建立執行容器

好像很簡單是吧?

詳細步驟

第零步,檢視Docker MySQL文件

第一步,拉取MySQL映象

$ sudo docker pull mysql

之後docker會自動拉取(下載)MySQL映象。

等待同樣是漫長的。。。

注意,若提示拉取失敗就重複幾次,總有一次會成功的。。。沒辦法,牆內的人民很辛苦

拉取成功後我們檢視一下:

$ sudo docker images

01

第二步,建立並啟動一個MySQL容器

輸入以下命令:

$ sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

02

  • –name:給新建立的容器命名,此處命名為pwc-mysql
  • -e:配置資訊,此處配置mysqlroot使用者的登陸密碼
  • -p:埠對映,此處對映主機3306埠容器pwc-mysql的3306埠
  • -d:成功啟動容器後輸出容器的完整ID,例如上圖 73f8811f669ee...
  • 最後一個mysql
    指的是mysql映象名字

到這裡我們檢視容器執行狀態:

$ sudo docker ps

03

上圖可以看到容器的簡寫ID,容器的源映象,建立時間,狀態,埠對映資訊,容器名字等。

第三步,測試連線MySQL

這裡我使用navicat遠端連線,連線MySQL前需要防火牆開放埠或者關閉防火牆。

開放埠:

$ sudo firewall-cmd --add-port=3306/tcp

關閉防火牆:

$ sudo systemctl stop firewalld

接著使用navicat連線 04

連線成功,也可以進行相關資料庫操作,因此MySQL服務搭建成功!

其他

1.可以啟動多個MySQL服務,因為我們啟動的是容器,容器可以有多個,只要容器名字對映段埠不一樣就可以了,例如:

$ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql

2.檢視所有容器(啟動狀態或者關閉狀態)

$ sudo docker ps -a

3.啟動和關閉容器

啟動命令:

$ sudo docker start pwc-mysql   //通過指定容器名字
$ sudo docker start 73f8811f669e  //通過指定容器ID

關閉命令:

$ sudo docker stop pwc-mysql   //通過指定容器名字
$ sudo docker stop 73f8811f669e  //通過指定容器ID

3.修改MySQL配置檔案有兩種方法:

  • 一是進入容器,修改容器裡的MySQL的配置檔案,然後重新啟動容器,例如:

    $ sudo docker exec -it pwc-mysql /usr/bin/bash

    然後可以進入容器的命令列模式,接著修改 /etc/mysql/my.cnf 檔案即可

  • 二是掛載主機的mysql配置檔案,官方文件如下:

    The MySQL startup configuration is specified in the file /etc/mysql/my.cnf, and that file in turn includes any files found in the /etc/mysql/conf.d directory that end with .cnf. Settings in files in this directory will augment and/or override settings in /etc/mysql/my.cnf. If you want to use a customized MySQL configuration, you can create your alternative configuration file in a directory on the host machine and then mount that directory location as /etc/mysql/conf.d inside the mysql container.

    If /my/custom/config-file.cnf is the path and name of your custom configuration file, you can start your mysql container like this (note that only the directory path of the custom config file is used in this command):

    $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

    This will start a new container some-mysql where the MySQL instance uses the combined startup settings from /etc/mysql/my.cnf and /etc/mysql/conf.d/config-file.cnf, with settings from the latter taking precedence.

我大概可以看懂,相信大家都可以的