說明:
在有網絡的環境上制作Mysql8.0的鏡像包,導出並上傳至無網絡的環境上,啟動mysql即可
1.搜索Mysql鏡像包
docker search mysql
2.拉取Mysql8.0鏡像
說明:
如果:后不寫版本號,則默認拉取最新的
docker pull mysql:8.0
查看鏡像
docker images
3.創建數據目錄和配置文件
3.1在宿主機創建mysql的配置文件的目錄
mkdir -p /usr/local/mysql_docker/conf
3.2在配置文件目錄下創建MySQL的配置文件my.cnf
touch /usr/local/mysql_docker/conf/my.cnf
3.3編輯配置文件信息
cd /usr/local/mysql_docker/conf/
vim my.cnf
[client] # socket = /usr/local/mysql_docker/mysqld.sock default-character-set = utf8mb4 [mysqld] # pid-file = /var/run/mysqld/mysqld.pid # socket = /var/run/mysqld/mysqld.sock # datadir = /var/lib/mysql # socket = /usr/local/mysql_docker/mysqld.sock # pid-file = /usr/local/mysql_docker/mysqld.pid datadir = /usr/local/mysql_docker/data character_set_server = utf8mb4 collation_server = utf8mb4_bin secure-file-priv= NULL # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Custom config should go here !includedir /etc/mysql/conf.d/
3.4在宿主機創建mysql的數據目錄
mkdir -p /usr/local/mysql_docker/data
4.創建容器並啟動MySQL
docker run -d -p 13306:3306 --name mysql_docker -v /usr/local/mysql_docker/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql_docker/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 mysql:8.0
說明:
-d: 后台運行容器
-p :指定容器暴露的端口,映射宿主機端口號和容器端口號
--name:指定容器名字,后續可以通過名字進行容器管理
-v:掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,后面是容器內部目錄
-e :環境參數,MYSQL_ROOT_PASSWORD設置root用戶的密碼
5.進入容器內部,解決遠程連接問題
docker exec -it mysql_docker /bin/bash
5.1 連接Mysql
mysql -uroot -p
5.2 修改訪問主機以及密碼,設置所有主機可訪問
use mysql alter user 'root'@'%' identified with mysql_native_password by '123123';
5.3 刷新權限
flush privileges;
5.4 退出
exit
6.測試遠程是否能連接成功
如下圖所示:成功
7.導出鏡像
docker save -o mysql8.tar mysql:8.0
8.將鏡像包mysql8.tar上傳至無網絡的環境上,執行
docker load -i mysql8.tar
查看鏡像是否導入進來
docker images
9.直接啟動Mysql
docker run -d -p 13306:3306 --name mysql_docker -v /usr/local/mysql_docker/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql_docker/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 mysql:8.0
這樣就使用docker成功離線安裝了MySQL