mysql文件存儲docker
『壹』 docker mysql 容器 資料庫文件怎麼嫻宿主機器上
1. 首先創建一個目錄並在目錄下創建一個Dockerfile,文件內容如下
[plain] view plain print?
FROM centos:centos6
MAINTAINER Fanbin Kong "[email protected]"
RUN yum install -y mysql-server mysql
RUN /etc/init.d/mysqld start &&\
mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\
mysql -u root -pletmein -e "show databases;"
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]
『貳』 【docker】 數據存儲:redis、mysql、mongo、elasticsearch
使用5.6版本,容器內數據文件所在位置:/var/lib/mysql
『叄』 windows裝的docker;mysql保存操作問題
可以通過docker ps -a 查看剛結束的mysql容器;直接開啟容器:docker start 容器id。
還可以用數據卷保存mysql容器操作的數據。
『肆』 docker mysql 容器 資料庫文件怎麼嫻宿主機器上
docker跟宿主機交互的是通過原生網路實現的。
當Docker進程啟動之後,它會配置一個虛擬的網橋叫docker0在宿主機上。這個介面允許Docker去分配虛擬的子網給即將啟動的容器們。這個網橋在容器內的網路和宿主機網路之間將作為介面的主節點。
Docker容器啟動後,將創建一個新的虛擬介面並分配一個網橋子網內的IP地址。這個IP地址嵌在容器內網路中,用於提供容器網路到宿主機docker0網橋上的一個通道。Docker自動配置iptables規則來放行並配置NAT,連通宿主機上的docker0,就可以訪問宿主機的mysql數據文件了。
『伍』 docker mysql 容器 資料庫文件怎麼嫻宿主機器上
原因是文件夾沒許可權,同時把宿主和容器中相應的文件夾設置為歸屬mysql用戶,但結果是只有一個文件夾歸屬mysql用戶,再次把不是歸屬mysql的文件夾設置為歸屬mysql用戶後,另一個文件夾又變成不歸屬mysql用戶,這是什麼原因?如下所示: 宿主: chmod +w /data/volumes-mysql chown -R mysql:mysql /data/volumes-mysql chcon -R -t mysqld_db_t /data/volumes-mysql 容器: chmod +w /home/databases/mysql/data chown -R mysql:mysql /home/databases/mysql/data chcon -R -t mysqld_db_t /home/databases/mysql/data cd /data/volumes-mysql ls -al drwxr-xr-x. 2 27 27 4096 12月 3 20:09 . drwxr-xr-x. 6 root root 4096 12月 3 19:54 .. -rw-rw----. 1 27 27 18874368 12月 3 20:09 ibdata1 -rw-rw----. 1 27 27 5242880 12月 3 20:09 ib_logfile0 -rw-rw----. 1 27 27 5242880 12月 3 20:09 ib_logfile1 cd /home/databases/mysql/data ls -al drwxr-xr-x. 2 mysql mysql 4096 Dec 3 12:09 . drwxr-xr-x. 3 root root 4096 Dec 3 12:02 .. -rw-rw----. 1 mysql mysql 5242880 Dec 3 12:09 ib_logfile0 -rw-rw----. 1 mysql mysql 5242880 Dec 3 12:09 ib_logfile1 -rw-rw----. 1 mysql mysql 18874368 Dec 3 12:09 ibdata1
『陸』 怎麼linux本地mysql放到docker中
如果對MySQL比較熟悉,那麼可以使用MySQL異機遷移的方法:
先確定MySQL的運行系統、發行版、版本號,以前的配置文件。
根據以上信息在Docker環境下新建一台全新的MySQL。
根據業務需要實施停機遷移/在線遷移,將數據遷入Docker內的MySQL。
停機遷移:直接拷貝數據文件(物理遷移)、全量Dump導出(邏輯備份遷移)、xtraback備份(物理備份遷移)
在線遷移:將新庫作為從庫加入集群,完成同步後fo切換,原主庫下線。
如果對Docker比較熟悉,可以使用Docker整機遷移的方法:
整機虛擬化直接作為一個鏡像在Docker內運行。
這種方法雖然簡單,但過程漫長而且運行時性能損耗非常大,也容易出問題,不是很推薦。
『柒』 MySQL 到底能不能放到 Docker 里跑
MySQL 到底能不能放到 Docker 里跑
當我們的mysql 容器啟動後,想要登陸mysql 的資料庫怎麼辦。以下介紹幾種方法, 其他容器的登陸也可以仿效。 第一: 啟動容器後用link 鏈接, 官方的mysql 容器有以下幾個環境變數。 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-se.
『捌』 docker mysql數據會保存下來嗎
默認會保留下來,位置一般都在/var/lib/docker目錄裡面,就是docker鏡像跑的地方,但是一旦重啟或者容器,或者容器掛掉了,你的數據就沒了。
所以,一般我們要用docker容器跑資料庫的話,都是要用持久化存儲的,比如掛載的目錄單獨存在一個地方,或者三方nfs存儲裡面。
『玖』 linux伺服器端有一個mysql,如何部署到docker容器里
步驟1:為我們的容器創建第一個鏡像
# 以 centos 鏡像作為基礎鏡像,我們啟動自己的容器並在其中執行/bin/bash命令
# 註:-t -i 參數用於創建一個虛擬的命令行。
sudo docker run -t -i centos /bin/bash
現在我們已經成功的運行了自己的第一個容器,並且進入到容器的命令行界面中。在容器中,我們執行下面的命令:
yum -y update # 更新軟體包
yum install which # 安裝which命令
yum install git # 安裝Git
安裝完成後,按 Ctrl + d 來退出容器的命令行。
# 執行sudo docker ps -a,可以看到被我們終止的容器
CONTAINER ID IMAGE COMMAND CREATED……
da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..
把我們所做的改變提交到一個新的容器:
# 這里我們創建一個自己的基礎容器,容器中安裝好了文章中所需的常用工具。讀者的容器 id 可能與文章中的有所不同,以上一步 docker ps -a 的結果為准。
sudo docker commit da90 custom/base
容器成功提交後,執行 sudo docker images ,我們會看到剛才提交的容器(如下面的結果所示)。我們就以這個容器為基礎容器,再來創建一個新的容器。
REPOSITORY TAG IMAGE ID CREATED
custom/base latest 05b6cecd370b 2 minutes ago
centos 6.4 539c0211cd76 10 months ago
centos latest 539c0211cd76 10 months ago…
步驟2:創建新的容器,並安裝 apache
# 以 custom/base 容器為基礎,運行一個新的容器。
sudo docker run -t -i custom/base /bin/bash
# 安裝 httpd
yum install httpd
步驟3:再次提交新的容器
按 Ctrl + d 來退出容器的命令行,然後執行命令:
# 這個命令會把步驟2中我們安裝 httpd 帶來的改變提交到新的名為 custom/httpd 的容器鏡像中。你的容器 id 可能會和文章中有所不同,以 sudo docker ps -a 命令的結果為准。
sudo docker commit aa6e2fc0b94c custom/httpd
你應該已經發現了,我們創建了一個帶有 http 伺服器並可以復用的容器鏡像。你可以根據這種思想,為自己所需的每個組件都創建一個容器,然後把這些容器復用於開發環境或者生產環境。
步驟7:運行 http 伺服器
# -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.
# -v 參數把主機共享給虛擬機的一個卷掛載到容器中
# -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile
# -p 參數把虛擬機的80埠映射到容器的80埠;虛擬機的80埠在 Vagrantfile 中被綁定到主機的8080埠,也就是:主機8080->虛擬機80->容器80
sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash
# 啟動 Apache
apachectl -k start
『拾』 在Docker中安裝MySQL5.7
docker pull mysql:5.7
將全部的配置文件和關聯的文件夾統一放到 /opt/docker/mysql 中
創建 MySQL 配置文件文件夾
mkdir -p /opt/docker/mysql/conf.d
增加並修改配置文件 config-file.cnf
vim /opt/docker/mysql/conf.d/config-file.cnf
輸入如下內容:
創建 MySQL 數據文件夾
mkdir -p /opt/docker/mysql/var/lib/mysql
啟動,設置默認密碼 root ,TZ 設置容器的默認時區
Windows使用這條:
進入容器
docker exec -it mysql bash
進入 MySQL
mysql -uroot -p
輸入剛才我們設置的密碼 root
授權
mysql> GRANT ALL ON *.* TO 'root'@'%';
刷新許可權
mysql> flush privileges;
更新加密規則
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
更新 root 密碼
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';
刷新許可權
mysql> flush privileges;
退出容器
exit
啟動容器
docker start mysql
停止容器
docker stop mysql
重啟容器
docker restart mysql
進入容器
docker exec -it mysql bash
刪除容器
docker rm mysql
查看日誌
docker logs -f mysql
備份數據
docker exec mysql sh -c 'exec mysqlmp --all-databases -uroot -p 密碼' > /usr/local/all-databases.sql
恢復數據
docker exec -i mysql sh -c 'exec mysql -uroot -p 密碼' < /usr/local/all-databases.sql
