1. 程式人生 > 其它 >八、Docker入門系列--Docker常用安裝

八、Docker入門系列--Docker常用安裝

八、Docker 常用安裝

一、Docker入門系列--Docker 簡介
二、Docker入門系列--Docker安裝
三、Docker入門系列--Docker常用命令
四、Docker入門系列--Docker映象
五、Docker入門系列--Docker容器資料卷
六、Docker入門系列--DockerFlie解析
七、Docker入門系列--使用DockerFlie自定義Tomcat映象
八、Docker入門系列--Docker常用安裝
九、Docker入門系列--本地映象釋出到阿里雲
十、Docker入門系列--Docker-Compose簡介和安裝
十一、Docker入門系列--Docker-Compose模板命令


十二、Docker入門系列--Docker-Compose常用命令
十三、Docker入門系列--Portainer視覺化Docker
十四、Docker入門系列--Docker搭建部署SpringCloud微服務專案Demo


8.1 總體步驟

搜尋映象->拉取映象->檢視映象->啟動映象->停止容器->移除容器

  • docker search xxx
  • docker pull xxx:TAG
  • docker images xxx
  • docker run [-itd -p port:port] [--name yyy] xxx:TAG
  • docker stop 容器ID/yyy
  • docker rm [-f] yyy

8.2 安裝mysql

8.2.1 mysql5.7

docker pull mysql:5.7

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=10086 \
-d mysql:5.7

命令說明:

-p 12345:3306:將主機的3306埠對映到docker容器的3306埠。

--name mysql

:執行服務名字

-v /mydata/mysql/conf:/etc/mysql :將主機/mydata/mysql/conf目錄,掛載到容器的/etc/mysql目錄

-v /mydata/mysql/data:/var/lib/mysql:將主機的/mydata/mysql/data目錄,掛載到容器的/var/lib/mysql目錄

-v /mydata/mysql/log:/var/log/mysql:將主機的/mydata/mysql/log目錄,掛載到容器的/var/log/mysql目錄

-e MYSQL_ROOT_PASSWORD=10086:初始化 root 使用者的密碼。

-d mysql:5.7 : 後臺程式執行mysql5.7

使用windows上的sqlyog進行遠端連線:

記得關閉宿主機防火牆或者開啟3306埠

# 檢視防火牆資訊,看哪些埠可以訪問
firewall-cmd --list-all
# 關閉防火牆
systemctl stop firewalld

# 或者開啟3306埠訪問(推薦)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
systemctl restart firewalld

8.2.2 使用docker對mysql容器中的資料進行備份

將docker mysql容器中的所有資料庫匯出到宿主機的/mydata/mysql8/all-databases.sql檔案中

docker exec myql服務容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' > /mydata/mysql8/all-databases.sql

# 如果使用UTF-16編碼 用--result-file= 替換>
docker exec myql服務容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' --result-file=/mydata/mysql8/all-databases.sql

mysqldump是mysql自帶的邏輯備份工具。命令格式:官網mysqldump

mysqldump [選項] 資料庫名 [表名] > /路徑/filename.sql
mysqldump [選項] --資料庫名 [選項 表名] > /路徑/filename.sql
mysqldump [選項] --all-databases [選項] > /路徑/filename.sql

常用選項說明:

引數名 縮寫 含義
--host -h 伺服器IP地址
--port -P 伺服器埠號
--user -u mysql使用者名稱
--password -p mysql密碼
--database 指定要備份的資料庫
--all-databases 備份mysql上的所有資料庫
--compact 壓縮模式,產生更少的輸出
--comments 添加註釋資訊

8.3 安裝redis

docker pull redis

docker run -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf  -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

--appendonly yes 表示使用AOF進行持久化 (redis預設使用rdb進行持久化)

redis.conf是個資料夾,不是個檔案 (小聲BB:這個redis.conf資料夾是不是太容易引起歧義了?還有redis-server啟動的時候,後面跟的那串不是指定的配置檔案的路徑嗎,講道理redis.conf應該就是個配置檔案才對);

在主機/mydata/redis/conf/redis.conf目錄下新建redis.conf檔案

vim /mydata/redis/conf/redis.conf

測試redis-cli連線:docker exec -it redis容器ID redis-cli

測試生成持久化檔案: