欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Docker容器運(yùn)行Mysql實(shí)戰(zhàn)記錄

 更新時(shí)間:2023年09月28日 10:30:52   作者:馬大胡子  
這篇文章主要給大家介紹了關(guān)于使用Docker容器運(yùn)行Mysql的相關(guān)資料,助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下,需要的朋友可以參考下

前言

隨著虛擬化技術(shù)和云計(jì)算的普及,容器技術(shù)的優(yōu)點(diǎn)也逐步體現(xiàn),軟件部署和環(huán)境遷移的優(yōu)勢(shì)無可替代。

目前Docker已經(jīng)成為容器技術(shù)中的主要代表,恰好涉及需要在liunux系統(tǒng)上部署Mysql數(shù)據(jù)庫用于測(cè)試,由于是初次使用docker部署Mysql,所以對(duì)其中一些操作進(jìn)行記錄。

一、基礎(chǔ)的虛擬機(jī)環(huán)境

使用虛擬機(jī),安裝ubuntu系統(tǒng),發(fā)行版和內(nèi)核信息如下:

root@ldap:/# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
root@ldap:/# uname -r
5.15.0-72-generic
root@ldap:/# 

只所以使用ubuntu是因?yàn)閏entos各大鏡像站都已經(jīng)停止維護(hù),在基礎(chǔ)系統(tǒng)安裝過程中,經(jīng)常出現(xiàn)一些莫名其妙的問題,雖然可以解決但比較浪費(fèi)時(shí)間。

二、安裝過程

安裝配置docker

# 安裝 docker 和 docker-compose
#先移除docker。其實(shí)也不用重裝docker,我用的ubuntu里已經(jīng)安裝了完整的docker,但我想用用華為云發(fā)布的docker-ce,所以就按說明對(duì)原docker進(jìn)行了移除操作
#如果不是root用戶,則需要加sudo,否則不用。
sudo apt remove docker docker-engine dockdocker.io containerd runc
#更新后,安裝依賴,apt源已經(jīng)改為華為鏡像源
sudo apt update
sudo apt install  -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
#運(yùn)行公鑰,添加docker軟件倉庫
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
#安裝docker-ce docker-ce-clicontainerd.io
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

#sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#sleep 1
#sudo chmod +x /usr/local/bin/docker-compose
#安裝docker-compose
apt install docker-compose docker-compose-plugin -y

#啟動(dòng)docker,開機(jī)自啟動(dòng)
systemctl start docker
systemctl enable docker

拉取Mysql鏡像

#查看倉庫mysql鏡像
#docker search mysql
docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   14159     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5408      [OK]       
percona                         Percona Server is a fork of the MySQL relati…   609       [OK]       
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   802       [OK]       
circleci/mysql                  MySQL is a widely used, open-source relation…   29                   
bitnami/mysql                   Bitnami MySQL Docker Image                      86                   [OK]
bitnami/mysqld-exporter                                                         5                    
ubuntu/mysql
#使用命令docker pull mysql ,默認(rèn)tag:latest
docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
90e2fb2facff: Pull complete 
ba60eb20fd5f: Pull complete 
4f509402d469: Pull complete 
496c2cfa6815: Pull complete 
8ec1dfa9522c: Pull complete 
6dec7ba896f8: Pull complete 
dc9ff75362b0: Pull complete 
73e4682f9014: Pull complete 
9ffdeecd6fb6: Pull complete 
a4346ccfb53f: Pull complete 
434c13bc32de: Pull complete 
Digest: sha256:d6164ff4855b9b3f2c7748c6ec564ccff841f79a7023db0f9293143481a44b6e
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
   

用docker啟動(dòng)mysql

docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
60bc33b60efa81c32d93e3452fd5fbe3a5d72c4cfc898d77af1a70a83cdd77e5
root@l:/# 
root@l:/# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@:/# 

命令的使用和參數(shù)具體解釋如下:

1.必要參數(shù):

-p 3306:3306:將宿主主機(jī)的3306端口映射到容器的3306端口,使宿主主機(jī)可以連接容器內(nèi)的MySQL服務(wù)。

–name mysql:為容器命名為mysql。

2.數(shù)據(jù)卷配置參數(shù):

  • -v /mydata/mysql/log:/var/log/mysql:將宿主機(jī)上的/mydata/mysql/log目錄掛載到容器的/var/log/mysql目錄下,用于存儲(chǔ)MySQL的日志文件。
  • -v /mydata/mysql/data:/var/lib/mysql:將宿主機(jī)上的/mydata/mysql/data目錄掛載到容器的/var/lib/mysql目錄下,用于存儲(chǔ)MySQL的數(shù)據(jù)文件。
  • -v /mydata/mysql/conf:/etc/mysql:將宿主機(jī)上的/mydata/mysql/conf目錄掛載到容器的/etc/mysql目錄下,用于存儲(chǔ)MySQL的配置文件。

3.MySQL賬戶安全參數(shù):

-e MYSQL_ROOT_PASSWORD=root:設(shè)置MySQL的root賬戶密碼為root。建議設(shè)置復(fù)雜的密碼。

4.容器啟動(dòng)參數(shù):

-d mysql:lates:使用MySQL:lates鏡像,在宿主機(jī)后臺(tái)啟動(dòng)容器,并命名為mysql。

通過以上參數(shù)配置,可以實(shí)現(xiàn)對(duì)MySQL容器的定制化部署,提高應(yīng)用程序的性能和可靠性。

這時(shí)候,返回一串字符“60bc33b60efa81c32d93e3452fd5fbe3a5d72c4cfc898d77af1a70a83cdd77e5”
表示命令正常執(zhí)行,而且已經(jīng)運(yùn)行了Mysql鏡像容器。

當(dāng)然,如果你這樣做了,會(huì)發(fā)現(xiàn):

#使用docker ps查看不到mysql的進(jìn)程
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#加參數(shù)-a后是有記錄的
# docker ps -a
docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED      STATUS                  PORTS     NAMES
60bc33b60efa   mysql     "docker-entrypoint.s…"   2 days ago   Exited (1) 2 days ago             mysql

原因是:雖然成功運(yùn)行的了mysql容器,但是容器中沒有在執(zhí)行的程序,所以容器自動(dòng)停止了。

你可以根據(jù)自己的需要,在啟動(dòng)時(shí)添加容器運(yùn)行參數(shù),例如

#以交互方式運(yùn)行容器,并加載bash指令集
#docker run -it -p 3306:3306 --name mysql_new1 -e MYSQL_ROOT_PASSWORD=root -d mysql bash
#之前使用centos、ubuntu等基礎(chǔ)鏡像時(shí),使用參數(shù)-it后,會(huì)進(jìn)入到容器內(nèi),但這里不知道為什么,命令符還是宿主機(jī)的
docker run it -e MYSQL_ROOT_PASSWORD=root -d mysql bash

101258d2fdbf87f97dd533a05f164e2c6ec152e170a497b4ac787723cfc2cc81
# docker ps就可以看到運(yùn)行容器狀態(tài)
docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
101258d2fdbf   mysql     "docker-entrypoint.s…"   7 seconds ago   Up 6 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql_new1

#進(jìn)入容器:docker exec -it mysql bash
docker exec -it 101 bash
bash-4.4# ls
bin   dev			  entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc		 lib   media  opt  root  sbin  sys  usr

bash-4.4# cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="8.8"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:8:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.8
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.8

#尷尬了,沒用過Oracle Linux 8

總結(jié)

以上就是我使用docker運(yùn)行mysql的過程記錄,docker的使用使用雖然簡(jiǎn)單而且便利,但對(duì)不同程序鏡像運(yùn)行容器時(shí),還是要對(duì)具體要運(yùn)行的程序有一定的了解,比如mysql,至少要知道一些mysql的使用命令或者參數(shù)。

相關(guān)文章

  • windows?10安裝和使用docker

    windows?10安裝和使用docker

    這篇文章介紹了windows?10安裝和使用docker的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Docker磁盤空間清理的方法實(shí)現(xiàn)

    Docker磁盤空間清理的方法實(shí)現(xiàn)

    在使用Docker的過程中,系統(tǒng)會(huì)逐漸積累一些無用的垃圾文件,占據(jù)寶貴的磁盤空間并影響系統(tǒng)性,本文主要介紹了Docker磁盤空間清理的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)

    docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)

    這篇文章主要給大家介紹了docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟,docker是一個(gè)開源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動(dòng)化部署的方式,需要的朋友可以參考下
    2023-10-10
  • Elasticsearch使用常見問題解決方案

    Elasticsearch使用常見問題解決方案

    這篇文章主要介紹了Elasticsearch使用常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Docker部署web項(xiàng)目的實(shí)現(xiàn)

    Docker部署web項(xiàng)目的實(shí)現(xiàn)

    這篇文章主要介紹了Docker部署web項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx)

    Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx)

    這篇文章主要介紹了Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 解決docker安裝jenkins容器內(nèi)無法訪問外網(wǎng)

    解決docker安裝jenkins容器內(nèi)無法訪問外網(wǎng)

    這篇文章為大家主要介紹了docker安裝jenkins容器內(nèi)無法訪問外網(wǎng)的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • linux上安裝Docker(非常簡(jiǎn)單的安裝方法)

    linux上安裝Docker(非常簡(jiǎn)單的安裝方法)

    今天小編就為大家分享一篇關(guān)于linux上安裝Docker(非常簡(jiǎn)單的安裝方法),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • docker搭建etcd集群方式 bitnami/etcd

    docker搭建etcd集群方式 bitnami/etcd

    這篇文章主要介紹了docker搭建etcd集群方式 bitnami/etcd,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 寫給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行(最新講解)

    寫給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行(最新講解)

    這篇文章主要介紹了寫給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行,通過?docker?高效學(xué)習(xí)?nginx?配置,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評(píng)論