Docker MySQL 容器備份啓動

  1. 首先打開你們安裝好docker的終端,你得從官網拉取一個mysql鏡像(image),我這裏選擇tag爲5.7。
    docker pull mysql:5.7

     

  2. 拉取完之後我們創建容器並啓動該鏡像(image),啓動時需要注意設置root密碼,和服務器字符編碼。
    先運行命令查看mysql鏡像是否存在
    --查看mysql鏡像是否存在
    docker images|grep mysql
    
    --啓動mysql鏡像 其中 -p 表示端口映射  主機端口:容器端口 --name 表示容器名稱 -e 表示要執行的命令,這裏設置root密碼。-d 表示後臺運行容器,並返回容器ID;後面設置服務器字符編碼
    docker run -p 3306:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

     

  3. 啓動容器成功後,我們用客戶端測試mysql連接是否正常。密碼是:my-secret-pw
  4. 連接上數據庫之後我們創建一個test數據庫,並建表插入幾條測試數據。
    drop database if exists test;
    create database test;
    use test;
    create table t_user (
    	id int not null,
        username varchar(32) not null
    );
    insert into t_user values(1,'張三');
    insert into t_user values(1,'李四');
    select * from t_user;

  5. 基本上數據庫正常使用,我們現在查看正在運行mysql容器,我們進入容器查看下數據庫的配置文件目錄。
    -- 查看mysql容器
    docker ps|grep mysql
    
    -- 進入到mysql容器
    docker exec -it 容器id bash
    
    -- 查看mysql涉及的目錄  直接用linux命令
    whereis  mysql
    -- 一般mysql目錄基本上全部出來了,配置文件一般在/etc/mysql/mysql.conf.d,切換到指定目錄查看當前目錄文件,你會看到mysqld.cnf,我們直接cat這個文件數據目錄在哪裏。使用如下命令:
    cd /etc/mysql/mysql.conf.d
    ls
    cat mysqld.cnf|grep datadir
    
    -- 獲得mysql數據目錄之後我們可以把這個目錄想辦法從容器裏面複製一份出來到宿主機,我這裏的宿主機目錄是~/Docker/mysql/5.7/datadir 目錄自己記得先在宿主機創建好。
    docker cp 容器id:/var/lib/mysql ~/Docker/mysql/5.7/datadir

     

  6. 拷貝出數據目錄之後我們來開始備份容器。
    -- 查看mysql容器
    docker ps|grep mysql
    
    -- 複製容器id,開始備份容器
    docker commit -m "MySQL backup" -a "chengli.zou" 容器id 容器名稱:tag名稱
    
    -- 查看備份好的容器鏡像
    docker images|grep tag名稱
    
    -- 啓動備份好的容器鏡像,其中-v表示掛載宿主機目錄:容器目錄,一定要注意,端口不能重複,之前宿主機是3306現在是3307,避免主機端口衝突。
    docker run -d -p 3307:3306 --name mysql_57 -v ~/Docker/mysql/5.7/datadir/mysql:/var/lib/mysql 鏡像id

     

  7. 備份容器啓動成功後我們緊接着用客戶端連接,並查看數據庫是否時之前插入的測試數據。

  8. 大功告成,這個deme有啥不理解的,直接下面評論,我會及時回覆你們的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章