認識Docker並搭建MySQL

2021-09-24 14:21:17 字數 2980 閱讀 8234

最近發現docker容器技術非常火,恰好剛想重灌伺服器上的mysql,就想把mysql搭建在docker執行使用,趕緊學習下

1、簡化程式:

docker 讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,便可以實現虛擬化。docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入docker中進行管理。方便快捷已經是 docker的最大優勢,過去需要用數天乃至數週的 任務,在docker容器的處理下,只需要數秒就能完成。

3、節省開支:

一方面,雲計算時代到來,使開發者不必為了追求效果而配置高額的硬體,docker 改變了高效能必然**格的思維定勢。docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬體管理的問題,也改變了虛擬化的方式。

### 檢索映象

docker search 映象名

docker search redis ### 檢索redis

docker pull 映象名

### 檢視本地映象列表

docker images

docker rmi image-id (刪除指定id的映象)

### 執行映象為容器方法之一

docker run --name container-name -d image-name

注: --name 是為容器取名稱 -d(detached)控制台不再阻礙 最後的指定執行哪個映象

docker run --name test-redis -d redis ### 執行redis

### 獲取容器列表doc

docker ps

### 檢視執行和停止狀態的容器

docker ps -a

### 停止容器 可以通過容器名稱或者容器id

docker stop container-name/container-id

### 啟動容器: docker start container-name/container-id 可以通過容器名稱或者容器id

docker start test-redis

### 刪除單個容器

docker rm container-id

### 檢視當前容器日誌:

docker logs container-name/container-id

1. 查詢mysql映象

docker search mysql

2.拉取mysql映象,因工作需求,我用的是mysql5.7

docker pull mysql:5.7

3.檢視本地映象

docker images 或者 docker images |grep mysql

4.執行mysql映象

特別注意

mysql(5.7.19)的預設配置檔案是 /etc/mysql/my.cnf 檔案。如果想要自定義配置,建議向 /etc/mysql/conf.d 目錄中建立 .cnf 檔案。新建的檔案可以任意起名,只要保證字尾名是 cnf 即可。

docker run -p 3306:3306 --name mysql -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -e mysql_root_password=123456 -d mysql:5.7

### 下面這條適用5.6版本

docker run -p 3306:3306 --name mymysql -v $pwd/conf:/etc/mysql/conf.d -v $pwd/logs:/logs -v $pwd/data:/var/lib/mysql -e mysql_root_password=123456 -d mysql:5.6

第四部引數說明

5.進入mysql容器

docker exec -it mysql bash

問題access denied for user 『root』@『localhost』 (using password: yes)

密碼並沒錯。。

解決找到我們在執行是的.cnf檔案並進行編輯

[mysqld]

skip-grant-tables

然後重新啟動容器即可

docker restart 6534d1f69ae0(container id)
就可以通過mysql -uroot -p登入啦,不需要密碼

然後mysql服務中

use mysql;

update user set authentication_string='' where user='root';

flush privileges;

退出mysql,把剛才在.cnf檔案中的配置注釋掉,重啟mysql

# 重設密碼

alter user 'root'@'localhost' identified by '123456';

問題解決!

6.設定外網訪問使用者

create user 'lucas'@'%' identified with mysql_native_password by '123456789!';

## 賦權,不推薦給太大的許可權

grant all privileges on *.* to 'lucas'@'%';

grant select, insert, update, delete on *.* to lucas@'%';

7.使用sqlyog測試(mysql管理工具)

很明顯,相比以前安裝在linux,在docker上操作變的更簡單也更容易管理了,也更方便管理

docker 搭建nacos並連線mysql資料庫

最近有在寫自己的腳手架專案,所以需要乙個配置中心。也可以用spring cloud的config bus實現,但是自己更熟悉nacos動態配置的使用,所以就自己用docker搭建乙個。因為我需要使用docker搭建。對於配置的儲存希望在另外乙個docker搭建的資料庫上,不可避免的不能用簡單的直接d...

Linux下利用Docker搭建MYSQL5 7

1 建立mysql配置目錄 建立配置目錄 mkdir p etc mysql conf.d 建立資料和日誌目錄 mkdir pv opt mysql 2 修改my.cnf配置 輸入 sudo vim etc mysql conf.d my.cnf,新增如下內容 mysqld default stor...

Docker之路 認識docker

docker 是基於 os 層的虛擬化技術之上的容器引擎,實現對程序的封裝隔離。開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上。docker為開發人員以及系統管理員提供了乙個用於開發 部署 和在容器中執行應用的平台。使用linux容器來部署應用這種方...