国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

docker上安裝使用mysql鏡像

2024-09-01 13:50:30
字體:
來源:轉載
供稿:網友

背景:

現如今不管什么服務和應用基本都可以在docker里跑一跑了,但是在我個人的印象中,像數據庫這種比較重要大型且數據容易受傷的應用是不適合在docker里跑的。但是也有很多人嘗試在docker中跑mysql等數據庫,所以也試著嘗試一下。(好吧,重點是領導喜歡~~)

獲取鏡像:

mysql的鏡像可以自己用dockerfile制作一個,或者直接到官方的docker鏡像庫中下載,本文用的是官方鏡像。

# docker pull mysql# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/mysql latest d9124e6c552f 12 days ago 383.4 MB

運行容器:

1:正常運行。

啟動容器:

# docker run --name cmh-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d docker.io/mysql

進入容器:

# docker-enter cmh-mysql

進入mysql:

root@3a2b8ab0d971:~# mysql -u root -pmy-secret-pwmysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 2Server version: 5.7.16 MySQL Community Server (GPL)Copyright (c) 2000, 2016,Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.mysql>

以上就創建了一個mysql的docker容器,可以看到版本為5.7.16。但是這樣創建的容器有兩個問題,一是容器刪除后,數據就丟失了,二是要訪問數據庫,必須進入到容器里面才可以。

2:持久化數據,映射開放mysql端口

創建宿主機數據存放目錄:

# mkdir -p /opt/data/mysql

啟動容器:

# docker run --name cmh-mysql -v /opt/data/mysql/:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql

c38f50a540ff4d5ecf1a5ec49fb721335a8e1b79dec58229cf5e00553f988e44

查看容器:

# docker ps

CONTAINER ID        IMAGE                    COMMAND                  CREATED            STATUS              PORTS        NAMES

c38f50a540ff        docker.io/mysql          "docker-entrypoint.sh"  9 seconds ago      Up 8 seconds        0.0.0.0:3306->3306/tcp        cmh-mysql                                

查看端口:

# netstat -ntpl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name  

tcp6      0      0 :::3306                :::*                    LISTEN      28657/docker-proxy

查看宿主機上的mysql數據:

# cd /opt/data/mysql# lltotal 188452-rw-r-----. 1 systemd-bus-proxy ssh_keys 56 Dec 6 16:01 auto.cnf-rw-r-----. 1 systemd-bus-proxy ssh_keys 1325 Dec 6 16:01 ib_buffer_pool-rw-r-----. 1 systemd-bus-proxy ssh_keys 79691776 Dec 6 17:16 ibdata1-rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 Dec 6 17:16 ib_logfile0-rw-r-----. 1 systemd-bus-proxy ssh_keys 50331648 Dec 6 16:01 ib_logfile1-rw-r-----. 1 systemd-bus-proxy ssh_keys 12582912 Dec 6 17:16 ibtmp1drwxr-x---. 2 systemd-bus-proxy ssh_keys 4096 Dec 6 16:01 mysqldrwxr-x---. 2 systemd-bus-proxy ssh_keys 8192 Dec 6 16:01 performance_schemadrwxr-x---. 2 systemd-bus-proxy ssh_keys 8192 Dec 6 16:01 sys

-p 3306:3306把容器的mysql端口3306映射到宿主機的3306端口,這樣想訪問mysql就可以直接訪問宿主機的3306端口。

-v /opt/data/mysql:/var/lib/mysql,即把宿主機/opt/data/mysql/目錄映射到容器的/var/lib/mysql目錄。

注意事項:

1:在使用-v選項映射目錄時,宿主機需關閉SElinux:

# setenforce 0

或者給數據目錄添加相關selinux權限:

# chcon -Rt svirt_sandbox_file_t /my/own/datadir

2:-v 選項原本是把宿主機的目錄映射進容器,但是在本文中,是反過來的。即是把容器中的目錄映射出宿主機,這是因為官方鏡像在制作的時候使用了VOLUME /var/lib/mysql選項。這使得容器中/var/lib/mysql成為一個單獨的卷組,在使用掛載選項-v時,就可以把該目錄映射出宿主機。

可以參考官方mysql鏡像的dockerfile:

https://github.com/docker-library/mysql/blob/4dd33136c4739667a223d39b6f829beb27b235cf/5.7/Dockerfile

DOCKER介紹 點擊查看

Docker從入門到實踐  點擊查看


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉尔市| 澄迈县| 肇庆市| 土默特右旗| 青神县| 宁国市| 龙山县| 徐闻县| 新昌县| 馆陶县| 余江县| 凤山县| 兴义市| 永平县| 巫山县| 化州市| 铅山县| 长汀县| 上虞市| 通山县| 浏阳市| 根河市| 阳高县| 什邡市| 宕昌县| 兖州市| 习水县| 滨州市| 新宁县| 江西省| 梅河口市| 合肥市| 汶川县| 贵港市| 神木县| 黄石市| 玉溪市| 玉林市| 襄城县| 西华县| 岐山县|