国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在 Docker 中使用 mysql 的一些技巧

617035918 / 1974人閱讀

摘要:今天我寫(xiě)一點(diǎn)在容器中使用的要不要在生產(chǎn)環(huán)境使用運(yùn)行數(shù)據(jù)庫(kù)這么深?yuàn)W的問(wèn)題,等我踩足夠的坑再來(lái)寫(xiě)吧。這是日常使用的狀態(tài),此處省略了別的服務(wù)。初始化容器在首次啟動(dòng)的時(shí)候,必須指定一個(gè)密碼才能啟動(dòng),指定的方式是聲明環(huán)境變量。

今天我寫(xiě)一點(diǎn)在 Docker 容器中使用 MYSQL 的 tips.
要不要在生產(chǎn)環(huán)境使用 Docker 運(yùn)行數(shù)據(jù)庫(kù)這么深?yuàn)W的問(wèn)題,等我踩足夠的坑再來(lái)寫(xiě)吧。
但是至少在開(kāi)發(fā)和測(cè)試環(huán)境你可以用 docker 管理數(shù)據(jù)庫(kù)啊。

Compose file

先貼一個(gè)我常用的 docker-compose 片段,后邊進(jìn)行詳細(xì)的解釋。這是日常使用的狀態(tài),此處省略了別的服務(wù)。

version: "2"
services:
    mysql:
        image: mysql:5.7.16
        ports:
        - ${DB_PORT}:3306
        environment:
        - TZ=Asia/Shanghai
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
        volumes:
        - ./mysql_data:/var/lib/mysql
        restart: unless-stopped
版本

一定要鎖定鏡像到最小的版本,因?yàn)閙ysql鏡像升級(jí)后需要你手動(dòng)在容器中執(zhí)行命令去 mysql-upgrade,否則很久之后,你才發(fā)現(xiàn)有的數(shù)據(jù)已經(jīng)損壞了。
實(shí)在想升級(jí),升級(jí)步驟如下:

如果是用 docker run 啟動(dòng)的,那么停掉再啟動(dòng)個(gè)新的。如果是用 docker-compose 啟動(dòng)的,直接改版本號(hào) pull 鏡像重新 up。

在新的版本啟動(dòng)后執(zhí)行 docker exec -it 你的容器名稱或id mysql-upgrade

端口

如果想在外部通過(guò)工具訪問(wèn),需要將3306端口映射到host上的一個(gè)端口,不準(zhǔn)備外部訪問(wèn)的環(huán)境則不必。
一般來(lái)說(shuō)開(kāi)發(fā)和測(cè)試環(huán)境還是經(jīng)常需要登到數(shù)據(jù)庫(kù)上查看的。

時(shí)區(qū)

添加環(huán)境變量 TZ 讓mysql用你的默認(rèn)時(shí)區(qū)啟動(dòng)。
這是因?yàn)?mysql 的基礎(chǔ)鏡像是 debian, 這個(gè)環(huán)境變量可以聲明 debian 的時(shí)區(qū),然后被 mysql 繼承。

字符編碼

mysql 的鏡像默認(rèn)編碼是 latin1 這可不行,在中國(guó)我們一般都用 UTF8
一般我們要是在主機(jī)上配置 mysql 的話,是去修改配置文件。但使用容器時(shí)映射進(jìn)去一個(gè)配置文件是很復(fù)雜的。
于是我們有個(gè)簡(jiǎn)單的辦法,mysql 接受很多 flag 通過(guò)啟動(dòng)時(shí)傳入。其中就有聲明服務(wù)器默認(rèn)編碼的。
我們的 command 命令就是給 mysql 在啟動(dòng)時(shí)加了兩個(gè)參數(shù)。

存儲(chǔ)

容器中有需要持久化存儲(chǔ)的內(nèi)容時(shí)就會(huì)有點(diǎn)麻煩。一般有兩種方案,一種是映射主機(jī)的一個(gè)目錄,一種是利用數(shù)據(jù)卷。
在很長(zhǎng)時(shí)間的使用中,我總結(jié)出了這個(gè)比較方便的辦法。

因?yàn)?docker-compose 有個(gè)潛規(guī)則就是大家一般都在有 compose 文件那個(gè)目錄執(zhí)行命令。

于是我們做一個(gè)以環(huán)境名稱命名的文件夾,里邊是 compose 文件,.env 文件,和各種需要持久化的文件夾。

在 compose 文件中,我們映射文件夾用相對(duì)目錄。

最后,這個(gè)文件夾就是一個(gè)整體,只需要把它拷貝在任何機(jī)器任何地方都可以啟動(dòng)這個(gè)環(huán)境。

初始化

mysql 容器在首次啟動(dòng)的時(shí)候,必須指定一個(gè)root密碼才能啟動(dòng),指定的方式是聲明環(huán)境變量 MYSQL_ROOT_PASSWORD
一旦在指定的數(shù)據(jù)文件夾發(fā)現(xiàn)已經(jīng)存在庫(kù)的時(shí)候,這個(gè)參數(shù)就會(huì)被忽略掉。
所以我們只需要在第一次啟動(dòng)的時(shí)候加上,后面有了數(shù)據(jù)后都去掉就好了。

導(dǎo)入導(dǎo)出

在容器中運(yùn)行的 mysql 該怎么導(dǎo)入導(dǎo)出數(shù)據(jù)或結(jié)構(gòu)呢?照這么做吧:

# Backup
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

# Restore
docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE < backup.sql

就這么多吧,還有什么 Tips ,歡迎大家補(bǔ)充。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26860.html

相關(guān)文章

  • docker】小技巧宿主機(jī)器上直接查看docker容器進(jìn)程

    摘要:最近看了這篇文章,了解到容器內(nèi)的一個(gè)進(jìn)程對(duì)應(yīng)于宿主機(jī)器上的一個(gè)進(jìn)程。在宿主機(jī)器上的進(jìn)程擁有者和在容器內(nèi)的進(jìn)程擁有者都是,同理,我們已經(jīng)驗(yàn)證了第二點(diǎn)。 最近看了這篇文章:Understanding how uid and gid work in Docker containers,了解到: docker容器內(nèi)的一個(gè)進(jìn)程對(duì)應(yīng)于宿主機(jī)器上的一個(gè)進(jìn)程。 容器內(nèi)的進(jìn)程,與相對(duì)應(yīng)的宿主進(jìn)程,由...

    nanfeiyan 評(píng)論0 收藏0
  • 數(shù)人云工程師手記 | 雙劍合璧,分布式部署兩步走

    摘要:今天小數(shù)給大家?guī)?lái)的是數(shù)人云工程師金燁的分享,有關(guān)于自動(dòng)快速部署服務(wù)相關(guān)組件的一些實(shí)踐。當(dāng)與相遇,雙劍合璧,一切變得如此簡(jiǎn)單有趣。通過(guò)將服務(wù)注冊(cè)到來(lái)做健康檢查。 今天小數(shù)給大家?guī)?lái)的是數(shù)人云工程師金燁的分享,有關(guān)于自動(dòng)快速部署DCOS服務(wù)相關(guān)組件的一些實(shí)踐。當(dāng)Ansible與Docker相遇,雙劍合璧,一切變得如此簡(jiǎn)單有趣。 本次分享將包括以下內(nèi)容: 云平臺(tái)部署使用的服務(wù)、組件 Do...

    Jonathan Shieber 評(píng)論0 收藏0
  • 如何編寫(xiě)最佳Dockerfile

    摘要:將安裝與模塊安裝放在一起的話,則每次修改源代碼,都需要重新安裝,這顯然不合適。使用設(shè)置鏡像元數(shù)據(jù)使用指令,可以為鏡像設(shè)置元數(shù)據(jù),例如鏡像創(chuàng)建者或者鏡像說(shuō)明。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,付費(fèi)客戶有金山軟件百姓網(wǎng)等眾多品牌企業(yè)。 譯者按: Dockerfile 的語(yǔ)法非常簡(jiǎn)單,然而如何加快鏡像構(gòu)建速度,如何減少 Docker 鏡像的大小卻不是那么直觀,需要積累實(shí)踐經(jīng)驗(yàn)。這篇...

    Sike 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<