Linux下在Docker容器中安裝各種軟件

本文是以github 75kstar+開源項目mall商城的部署教程為基礎進行部分細節補充,原文可點擊此處

系統環境

centOS 7.5 64位
ps:服務器建議選擇大內存的,不然裝完ElasticSearch1.2G內存就沒了。

軟件清單

  • Mysql
  • Redis
  • Nginx
  • RabbitMQ
  • ElasticSearch

Docker 環境安裝

//安裝yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2
//為yum源添加docker倉庫位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//安裝docker:
yum install docker-ce
//啟動docker:
systemctl start docker

Mysql安裝

下載mysql5.7的docker鏡像:
docker pull mysql:5.7

安裝上傳下載插件,并將mall項目中的docment/sql/mall.sql上傳到Linux服務器上:
yum -y install lrzsz
進入/mydata目錄cd /mydata
輸入rz,會自動彈出文件瀏覽框,選擇mall.sql并上傳
將mall.sql文件拷貝到mysql容器的/目錄下:
docker cp /mydata/mall.sql mysql:/

使用docker命令啟動:

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:5.7

參數說明

-p 3306:3306:將容器的3306端口映射到主機的3306端口
-v /mydata/mysql/conf:/etc/mysql:將配置文件夾掛在到主機
-v /mydata/mysql/log:/var/log/mysql:將日志文件夾掛載到主機
-v /mydata/mysql/data:/var/lib/mysql/:將數據文件夾掛載到主機
-e MYSQL_ROOT_PASSWORD=root:初始化root用戶的密碼

創建及導入mall數據庫

//進入運行mysql的docker容器:
docker exec -it mysql /bin/bash
//使用mysql命令打開客戶端:
mysql -uroot -proot --default-character-set=utf8
//創建mall數據庫:
create database mall character set utf8
//將sql文件導入到數據庫:
//下面2條命令需要進入到mysql狀態
use mall;
source /mall.sql;
//創建一個reader帳號并修改權限,使得任何ip都能訪問:
grant all privileges on *.* to 'reader' @'%' identified by '123456';

Redis安裝

//下載redis3.2的docker鏡像:
docker pull redis:3.2
//使用docker命令啟動:
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:3.2 redis-server --appendonly yes
Copy to clipboardErrorCopied
進入redis容器使用redis-cli命令進行連接:
docker exec -it redis redis-cli

RabbitMQ

下載rabbitmq3.7.15的docker鏡像:
docker pull rabbitmq:3.7.15

補充
mydata路徑在/根目錄下,因為我使用是finalshell自帶可視化目錄,但是mydata文件夾卻沒有顯示,只能通過ls命令來才會看到。這里被坑了一把。
拓展
linux系統環境下,如果需要搜索文件,可以通過find / -name 文件名 進行搜索;可以順便學習一下50條linux常用命令
windows系統下可以安裝Everything,超好用。

參考文章

同作者寫的開發者必備Docker命令

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。