中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Docker安裝Redis和Mysql

發布時間:2021-07-27 23:34:16 來源:億速云 閱讀:194 作者:chen 欄目:云計算

本篇內容介紹了“如何使用Docker安裝RedisMysql”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

最近準備寫如何實現分布式鎖的文章,實現分布式鎖可以借助數據庫、緩存和Zoopkpeer實現。在實現代碼時就需要安裝以上軟件。于是就想到使用docker來簡化我的安裝,并可以正好學習一下Docker相關知識,本篇文章就介紹下如何使用Docker安裝Mysql/Reids/Zookeeper。

關于docker的安裝教程很多,不同的操作系統也不一樣,這里不再贅述。如果僅是個人研究和學習,在mac上安裝建議大家使用docker for mac安裝,https://store.docker.com/editions/community/docker-ce-desktop-mac

Docker基礎概念

在使用Docker之前,我們先了解下幾個Docker的核心概念

Docker Daemon

Docker引擎,就是運行在后臺的一個守護進程,在我們啟動它之后,我們就可以通過Docker客戶端發送相關Docker的命令。

Docker Images

Docker鏡像,這個就類似于我們在安裝Windows時的鏡像,只不過windows的鏡像,在以前我們通常存在光盤上或者U盤里,這里的鏡像我們通常會發布到Docker Registry

Docker Containers

Docker容器,在獲取到Docker鏡像之后,我們可以運行該鏡像,此時便會啟動一個Docker容器,該容器中運行鏡像中的程序。如果把Docker鏡像理解為一個類的話,那么Docker容器就是一個實例

Docker Client

Docker客戶端,我們安裝完Docker之后,我們打開終端使用docker 相關命令進行操作,這些命令便是Docker客戶端的命令,另外還有一個基于REST API的Docker客戶端,REST API一般用于在開發一些基于Docker運維的系統中使用。

Docker Registry

Docker鏡像注冊中心,Docker的官網的注冊中心為http://hub.docker.com。我們也可以自己搭建自己的注冊中心。

以上是Docker的核心概念,下面我們來看如何使用Docker安裝Redis、Zookeeper、Mysql,并在過程中,學習使用Docker Client的一些常用命令

Redis

查找鏡像

使用以下命令在Docker Hub搜索Redis鏡像

docker search redis

執行以上命令,會搜索出所有帶redis關鍵字的鏡像(為減少篇幅,僅展示部分結果)

yanyanwangdeMacBook-Pro:~ yanyan.wang$ docker search redis
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis                     Redis is an open source key-value store th...   3788      [OK]
bitnami/redis             Bitnami Redis Docker Image                      47                   [OK]
torusware/speedus-redis   Always updated official Redis docker image...   32                   [OK]

其中Name表示鏡像倉庫的名稱,如果不帶/則表示Docker官方倉庫,帶/則表示其他用戶公開的鏡像。OFFICIAL表示是否為官方倉庫,一般我們推薦使用官方的倉庫。

拉取鏡像

我們使用以下命令拉取,Redis的鏡像

docker pull redis:latest

其中redis:latest表示我們下載NAME為redis的鏡像,latest表示TAG

在執行完以上命令之后,Docker Client會從Docker鏡像注冊中心下載Redis的鏡像,待下載之后,我們查看本地的鏡像

列出所有鏡像

我們使用以下命令查看,本地的redis鏡像

docker images

執行以上命令,就會顯示本地的所有鏡像

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              a858478874d1        10 days ago         184 MB

其中IMAGE ID表示鏡像ID,具有唯一性

創建并啟動容器

使用以下命令,使用Reids鏡像,創建并啟動Redis容器

docker run -p 6379:6379 -v $PWD/data:/data  -d redis:latest redis-server --appendonly yes

執行以上命令,我們就使用redis:latest鏡像創建并啟動了一個Redis容器,其中

-p 6379:6379:將容器的6379端口映射成主機的6379端口

-v $PWD/data:/data :將主機中當前目錄下的data掛載到容器的/data

redis-server --appendonly yes : 在容器執行redis-server啟動命令,并打開redis持久化配置

查看容器啟動情況

使用以下命令查看所有容器

docker ps

執行以上命令,輸出如下

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
07f0edc95fb3        redis:latest        "docker-entrypoint..."   2 minutes ago       Up 2 minutes        0.0.0.0:6379->6379/tcp   quirky_davinci

其中Status表示運行狀態,Up表示運行中,PORTS表示容器需要對外暴露的端口號

連接、查看容器

我們使用Redis鏡像使用redis-cli客戶端,連接到redis容器

docker run -it redis:latest redis-cli -h 192.168.0.101

執行以上命令,我們就連接到redis容器,接下來我們就可以使用redis命令進行操作

192.168.0.101:6379> set "testKey" "test"
OK
192.168.0.101:6379> get "testKey"
"test"
192.168.0.101:6379>

至此,我們已經完成了Reids的安裝。

Zookeeper

接下來我們安裝zookeeper,我們使用和redis相同的方法。直接使用最少的步驟安裝,不再做過多解釋

查找zookeeper鏡像

docker search zookeeper

查找結果如下:

NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
jplock/zookeeper               Builds a docker image for Zookeeper versio...   160                  [OK]
zookeeper                      Apache ZooKeeper is an open-source server ...   157       [OK]
mesoscloud/zookeeper           ZooKeeper                                       70                   [OK]
digitalwonderland/zookeeper    Latest Zookeeper - clusterable                  14                   [OK]
springxd/zookeeper             A Docker image that can run a ZooKeeper se...   6                    [OK]

拉取鏡像

docker pull zookeeper

創建并啟動容器

docker run -p 2181:2181 -v $PWD/data:/data  -d zookeeper:latest

使用zookeeprt鏡像創建并啟動容器,我們把容器的2181映射到機器的2181上,同樣把當前目錄的data 掛載到容器的/data

查看當前容器列表

yanyanwangdeMacBook-Pro:zookeeper yanyan.wang$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
44b43e486817        zookeeper:latest    "/docker-entrypoin..."   24 minutes ago      Up 24 minutes       2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp   mystifying_wing
2358c79358d6        redis:latest        "docker-entrypoint..."   About an hour ago   Up About an hour    0.0.0.0:6379->6379/tcp                       fervent_lamarr

進入容器

docker exec -it 44b43e486817 /bin/bash

進入容器之后,ls查看操作目錄,可以查看下有哪些目錄

bash-4.3# ls
LICENSE.txt                bin                        dist-maven                 lib                        zookeeper-3.4.10.jar.asc
NOTICE.txt                 build.xml                  docs                       recipes                    zookeeper-3.4.10.jar.md5
README.txt                 conf                       ivy.xml                    src                        zookeeper-3.4.10.jar.sha1
README_packaging.txt       contrib                    ivysettings.xml            zookeeper-3.4.10.jar

Mysql

接下來我們安裝Mysql,和以上直接從docker注冊中心拉取鏡像不同。我們首先構建自己的mysql鏡像,然后在創建并啟動容器

構建鏡像

編寫Dockerfile文件

我們可以使用Dockerfile來快速的構建。Dockerfile實際上就是一種編寫Docker鏡像的腳本,Dockerfile腳本有固定的格式,通過這些固定的格式,我們可以編寫不同需求的Docker鏡像。以下是構建Mysql鏡像的腳本以及腳本的含義

## 設置基礎鏡像
FROM mysql:latest

## 設置維護者信息
MAINTAINER yywang <wangyan9110@163.com>

## 設置描述信息
LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest"
## 設置鏡像制作過程中,需要執行的命令
RUN apt-get update
RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld

其中FROM 表示設置基礎鏡像指令,該指令有固定的格式,即“倉庫名:標簽名”,RUN 表示在鏡像構建過程中,需要執行的命令。

把以上腳本保存在一個叫Dockerfile的文件下,這時mysql鏡像的Dockfile的腳本就完成了。

構建mysql鏡像

在Dockerfile文件的同一目錄下輸入如下命令:

docker build -t yywang/mysql-osx:latest .

其中-t 指定了鏡像的名稱,. 這一點表示讀取當前目錄下的Dockerfile文件

查看鏡像

在執行完成以上命令后,我們查看當前鏡像

yanyanwangdeMacBook-Pro:zookeeper yanyan.wang$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
yywang/mysql-osx    latest              38c6579b6f70        4 minutes ago       446 MB

可以看出yywang/mysql-osx就是我們剛剛構建的鏡像

創建并啟動容器

創建并啟動mysql容器

接下來我們就創建并啟動mysql容器

docker run -d -h mysql \
  -v $PWD/mysql:/var/lib/mysql \
  -p 0.0.0.0:3306:3306 --name mysql \
  -e MYSQL_ROOT_PASSWORD=123456 yywang/mysql-osx

其中-e 表示設置mysql的root賬戶密碼為123456

連接、查看容器

我們使用Mysql鏡像的mysql客戶端,連接到mysql容器

docker run -it yywang/mysql-osx mysql -h292.168.0.101 -uroot -p123456

登錄完成后,我們就可以使用mysql的命令操作mysql

mysql> select GET_LOCK("testKey",0);
+-----------------------+
| GET_LOCK("testKey",0) |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set (0.01 sec)

mysql> select RELEASE_LOCK("testKey");
+-------------------------+
| RELEASE_LOCK("testKey") |
+-------------------------+
|                       1 |
+-------------------------+
1 row in set (0.00 sec)

至此Mysql的安裝也已經完成。

“如何使用Docker安裝Redis和Mysql”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家界市| 安顺市| 武川县| 比如县| 巴青县| 三原县| 师宗县| 祁阳县| 大丰市| 苏州市| 甘孜| 阜南县| 临安市| 油尖旺区| 阜城县| 隆德县| 定南县| 田林县| 青阳县| 仲巴县| 时尚| 丹江口市| 邯郸市| 宝山区| 甘泉县| 临沂市| 缙云县| 南昌市| 宁阳县| 鹿邑县| 土默特左旗| 鱼台县| 长汀县| 花莲县| 峨眉山市| 宜城市| 永吉县| 万山特区| 开原市| 乌鲁木齐县| 涪陵区|