下面講講關(guān)于在DOCKER容器中運行MySQL服務(wù)的操作方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完在DOCKER容器中運行MySQL服務(wù)的操作方法這篇文章你一定會有所受益。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、鏡湖網(wǎng)站維護、網(wǎng)站推廣。
虛擬機使用了VBOX,VBOX配置了2個網(wǎng)絡(luò),一個是HOST ONLY,一個是NAT,這樣保證了虛擬機可以同時進行本地和外網(wǎng)連接。
操作系統(tǒng)CentOS7.5,docker的安裝比較簡單,參考網(wǎng)上說明即可:
1. 先卸載系統(tǒng)中版本比較低的docker
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2.安裝必要的系統(tǒng)工具
# yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加阿里云的源 (有些文檔中的地址使用了http,導(dǎo)致添加源失敗,需要注意,目前源地址使用的是https協(xié)議)
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum緩存
# yum makecache fast
5.安裝docker-ce版本
# yum -y install docker-ce
6.配置docker服務(wù)自啟動并啟動docker服務(wù)
# systemctl enable docker
# systemctl start docker
7.至此docker配置完成,執(zhí)行docker info,查看下docker的信息
# docker info
Containers: 3
Running: 0
Paused: 0
Stopped: 3
Images: 3
Server Version: 18.06.1-ce
Storage Driver: overlay2
8.下載CENTOS最新的docker image
# docker search centos
# docker pull centos
[root@mysqldb ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 75835a67d134 4 weeks ago 200MB
下面開始在物理主機上面配置必要的網(wǎng)絡(luò)和目錄信息。
1. 宿主機創(chuàng)建mysql目錄
[root@mysqldb mysql]# cd /mysql/skydb/
[root@mysqldb skydb]# mkdir skydb1
[root@mysqldb skydb]# cd skydb1/
[root@mysqldb skydb1]# mkdir {data,log,binlog,tmp,script,etc}
2. 宿主機創(chuàng)建容器專用網(wǎng)絡(luò) (只需要創(chuàng)建一次)
創(chuàng)建網(wǎng)絡(luò)是為了方便在docker容器中使用固定的IP地址。
[root@mysqldb ~]# docker network create --subnet=172.168.56.0/16 skynet
[root@mysqldb ~]# docker network ls
3. 啟動centos docker容器
[root@mysqldb ~]#
docker run -id --name skydb1 \
-v /mysql/mysql/mysql-5.7.24:/opt/mysql5.7 \
-v /mysql/skydb/skydb1:/mysqldata \
-v /etc/hosts:/etc/hosts \
--net skynet --ip 172.168.56.10 --hostname skydb1 centos
--name skydb1 指定docker容器的名稱
-v /etc/hosts:/etc/hosts 指定本地文件與docker容器內(nèi)部的文件映射
--net skynet 指定docker的虛擬網(wǎng)絡(luò)
--ip 172.168.56.10 固定docker容器的ip地址
--hostname skydb1 指定docker容器的主機名
MySQL使用的二進制安裝包,解壓到宿主機上面,通過文件映射的方式映射給docker容器。
下面是5.7和8.0的安裝介質(zhì)下載地址:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
4. 連接容器 (通過容器名稱和ID進行連接)
[root@mysqldb ~]# docker exec -it skydb1 bash -c ". /root/.bash_profile && /bin/bash"
為了使登錄的信息比較醒目,在 /root/.bash_profile 指定 banner `hostname`,方便識別docker容器主機。
5. 創(chuàng)建文件鏈接
[root@skydb1 ~]# cd /usr/local/
[root@skydb1 local]# ln -s /opt/mysql5.7/ ./mysql
[root@skydb1 local]# ln -s /opt/mysql5.7/bin/mysql /usr/local/bin/mysql
[root@skydb1 script]# ln -s /mysqldata/script/my.cnf /etc/my.cnf
6. 通過ldd,檢查mysqld程序是否包含了所有動態(tài)庫
[root@skydb1 ~]# ldd /usr/local/mysql/bin/mysqld
7. docker容器,安裝必要軟件包
[root@skydb1 ~]# yum install libaio
[root@skydb1 ~]# yum install numactl
[root@skydb1 ~]# yum install iproute
[root@skydb1 ~]# yum install net-tools
8. 創(chuàng)建安裝用戶并修改目錄權(quán)限
[root@skydb1 ~]# groupadd mysql
[root@skydb1 ~]# useradd -g mysql -d /home/mysql -s /sbin/nologin -MN mysql
[root@skydb1 local]# cd /mysqldata/
[root@skydb1 mysqldata]# chown -R mysql:mysql ./
9. docker容器中初始化mysql
[root@skydb1 ~]# /usr/local/mysql/bin/mysqld --initialize
[root@skydb1 ~]# /usr/local/mysql/bin/mysqld &
10. 查看默認(rèn)的root口令
[root@skydb1 ~]# cd /mysqldata/log
[root@skydb1 log]# cat skydb1.err | grep pass
2018-11-06T05:27:43.361600-00:00 1 [Note] A temporary password is generated for root@localhost: /dJt?sq62OlF
11. 修改root用戶口令
[root@skydb1 ~]# /usr/local/mysql/bin/mysql -S /mysqldata/tmp/skydb1.sock -uroot -p
mysql> set global super_read_only=0;
mysql> set global read_only=0;
mysql> alter user user() identified by 'oracle';
mysql> flush privileges;
12. 配置本地自動登錄
[root@skydb1 script]# cat my.cnf
[client]
port = 3306
socket = /mysqldata/tmp/skydb1.sock
user = root
password = oracle
[root@skydb1 script]# mysql
13. 授權(quán)root用戶遠(yuǎn)程連接
root@localhost [mysql]>GRANT ALL PRIVILEGES ON *.* TO root@"172.168.56.%" IDENTIFIED BY "oracle";
root@localhost [mysql]>GRANT ALL PRIVILEGES ON *.* TO root@"172.168.0.1" IDENTIFIED BY "oracle";
root@localhost [(mysql)]>flush privileges;
[root@mysqldb ~]# mysql -uroot -h 172.168.56.10 -p
[root@mysqldb ~]# mycli -u root -h 172.168.56.10
14. docker容器啟停及登錄
[root@mysqldb ~]# docker ps
[root@mysqldb ~]# docker stop skydb1
[root@mysqldb ~]# docker start skydb1
[root@mysqldb ~]# docker exec -it skydb1 bash -c ". /root/.bash_profile && /bin/bash"
對于以上在DOCKER容器中運行MySQL服務(wù)的操作方法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
文章題目:在DOCKER容器中運行MySQL服務(wù)的操作方法
分享URL:http://aaarwkj.com/article26/iidijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、云服務(wù)器、做網(wǎng)站、搜索引擎優(yōu)化、ChatGPT、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)