Mysql Docker 映象使用

2021-10-01 17:00:10 字數 3181 閱讀 7172

開啟docker官方registry

搜尋mysql關鍵字

選擇官方mysql映象

選擇需要的版本,複製命令拉取映象

啟動mysql server 例項

docker run --name some-mysql -e mysql_root_password=my-secret-pw -d mysql:tag
some-mysql:容器名

my-secret-pw: mysql root賬號密碼

tag:mysql版本號

比如:

docker run --name msyql5.7 -e mysql_root_password=123456 -d -p mysql:5.7
使用mysql 客戶端命令列連線到mysql server

docker run -it --rm mysql:tag mysql -hsome.mysql.host -usome-mysql-user -p
比如:

docker run -it --rm mysql:5.7 mysql -h172.17.0.2 -uroot -p
檢視mysql server日誌

docker logs some-mysql
比如:

docker logs msyql5.7
映象的預設配置位於/etc/mysql/my.cnf,該配置檔案主要引用位於目錄/etc/mysql/conf.d//etc/mysql/conf.d/中的配置。

my.cnf:

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

如果想要用自己的配置檔案來啟動mysql,可以將自己的配置檔案目錄掛載容器的/etc/mysql/conf.d/上,這樣mysql就自動引入自定義配置了:

docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e mysql_root_password=my-secret-pw -d mysql:tag
/my/custom: 本地的配置檔案路徑,比如裡面有配置檔案config-file.cnf,那麼容器啟動後,在容器的/etc/mysql/conf.d目錄中就會存在config-file.cnf檔案,那麼也會被my.cnf載入。

如果自定義的配置項少,也可以直接給mysqld傳遞引數的方式配置:

docker run --name some-mysql -e mysql_root_password=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
使用下面這條命令可以查詢所有可配置的選項(本質執行mysqld --verbose --help 命令):

docker run -it --rm mysql:tag --verbose --help
mysql_root_password用來設定root賬號的密碼

mysql_database用來指定資料庫

mysql_user,mysql_password用來指定使用者和密碼

mysql_allow_empty_password是否允許root賬號是空密碼

mysql_random_root_password為root賬號隨機生成密碼

mysql_onetime_password設定root賬號登入後必須修改密碼

容器中的資料目錄位於 /var/lib/mysql 中。那麼基於docker的資料卷管理,有兩種管理資料儲存方式:

使用docker內部的資料卷管理機制,這種方式非常方便,不需要你做額外的處理,不好的是不方便在宿主機上找到對應的資料目錄。

自己在宿主機上建立資料目錄,並mount到容器中的 /var/lib/mysql 目錄上。這種方式好處是資料目錄容易找到,不好的是你需要確保宿主機上的資料目錄存在,許可權正確等額外的管理工作。

一般我們開發在本地使用時,使用第一種方式就好了。

對於第二種方式,可使用如下命令來將宿主機的目錄對映到容器中:

docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my-secret-pw -d mysql:tag
使用已經存在的資料庫

此時mysql_root_password環境變數設定會被忽略。

使用特定的賬號執行

docker run -v "$pwd/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e mysql_root_password=my-secret-pw -d mysql:tag
dump & restore

dumps:

docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$mysql_root_password"' > /some/path/on/your/host/all-databases.sql
restore:

docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$mysql_root_password"' < /some/path/on/your/host/all-databases.sql

使用 mysql docker 映象

命令 dockor pull mysql tag 案例 sudo dockor pull mysql 5.7 sudo dockor images啟動 mysql 伺服器,命令 sudo docker run name some mysql e mysql root password my secr...

雲倉庫安裝mysql docker安裝MySQL

把mysql放進docker,總共需要幾步?本次就通過社群版容器安裝2個mysql例項,看一下部署有多簡單。1 安裝docker 作業系統我使用的centos7 x64系統,而docker 目前看僅centos 7 及以上版本。本次採用docker 倉庫進行安裝 具體步驟如下 1.1 設定倉庫 因本...

docker映象使用

可以去 搜尋dockerfile mysql 缺省會在 3306 埠啟動資料庫。sudo docker run name some mysql e mysql root password mysecretpassword d mysql 之後就可以使用其它應用來連線到該容器。mongodb 缺省會在...