首先安裝docker 依賴庫(kù)
yum install -y yum-utils device-mapper-persistent-data lvm2
添加docker ce的軟件源信息,自行選擇,可添加可不添加,如果不是阿里云或者騰訊云的,請(qǐng)還是添加一下吧
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝docker
yum -y install docker-ce
docker -v
--查看docker版本docker images
--查看當(dāng)前docker運(yùn)行sudo systemctl start docker
--啟動(dòng)docker 在虛擬機(jī)里邊docker images
--有時(shí)候權(quán)限不足 我們變?yōu)?sudo docker images 檢查我們虛擬機(jī)里邊有無(wú)下載鏡像sudo systemctl enable docker
--設(shè)置開(kāi)機(jī)自啟動(dòng)
docker 配置鏡像加速
#1
sudo mkdir -p /etc/docker
#2
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的編號(hào).mirror.aliyuncs.com"]
}
EOF
#3
sudo systemctl daemon-reload
#4
sudo systemctl restart docker
===致此docker 安裝成功
docker指令安裝mysql
1 sudo docker pull mysql
--安裝最新的mysql
2 sudo docker pull mysql:版本號(hào)
我使用的是 mysql 8.0.2 --安裝指定的版本號(hào)
啟動(dòng)安裝的鏡像
比如啟動(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=a \
-d mysql:5.7.22
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=a \ -d mysql:5.7 ----- 上邊是mysql5.7的啟動(dòng)方式 -d 代表以后臺(tái)方式運(yùn)行 -p 3306:3306 將容器的3306端口映射到主機(jī)的3306
-p 3306:3306; 將容器的3306端口映射到主機(jī)的3306端口
-v/mydata/mysgl/conf:/etc/mysgl :將配置文件夫掛載到主機(jī)
-v/mydata/mysgl/log:/var/log/mysgl :將日志文件夾掛載到主機(jī)
-w/mydata/mysgl/data:/var/lib/mysgl/ ,將配置文件夾掛載到主機(jī)
-e MYSQL_ROOT_PASSWORD=root :初始化root用戶的密碼
有時(shí)候切換權(quán)限麻煩 所有我們切換到su root
--權(quán)限最高docker ps
--查看當(dāng)前docker正在運(yùn)行中的程序
docker run -dit -p 3306:3306 mysql:8.0.2 bash
--啟動(dòng)mysql 8.0.2
service mysql status
--查看mysql的狀態(tài)service mysql start
--啟動(dòng)mys
docker exec -it mysql /bin/bash
--進(jìn)入mysql內(nèi)部
whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
一、查看容器,復(fù)制容器id 即container id
docker ps -a
二、停止容器
docker stop 你的容器id
三、刪除容器
docker rm 容器id
四、查看鏡像,復(fù)制鏡像id即images id
docker images
五。刪除鏡像
docker rmi 鏡像id
這是我裝的
Mysql8.0安裝
1、拉取mysql鏡像
docker pull mysql:8.0
密碼為123456
2.docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
密碼為a的
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=a -d mysql
3.docker exec -it mysql /bin/bash
4.mysql -uroot -p123456
5.use mysql;
6.ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
7.ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
8.FLUSH PRIVILEGES;
9.修改密碼
mysqladmin -uroot -p舊密碼 password 新密碼 --密碼為 123456
注意一下我裝的虛擬機(jī)端口號(hào)mysql為 3307
29adbe537c3e mysql “docker-entrypoint.s…” 52 minutes ago Up 52 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp mysql
首先進(jìn)入
1、docker exec -it mysql bash
//mysql是mysql容器的別名
2、mysql -uroot -p
3、輸入密碼
4、進(jìn)入mysql>命令行界面
讓我們看看MYSQL的一些情況
1,容器中登錄mysql,查看mysql的版本
mysql> status;
mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)
2,進(jìn)行授權(quán)遠(yuǎn)程連接(注意mysql 8.0跟之前的授權(quán)方式不同)
授權(quán)
GRANT ALL ON *.* TO 'root'@'%';
刷新權(quán)限
flush privileges;
此時(shí),還不能遠(yuǎn)程訪問(wèn),因?yàn)镹avicat只支持舊版本的加密,需要更改mysql的加密規(guī)則
3,更改加密規(guī)則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'a' PASSWORD EXPIRE NEVER;
4,更新root用戶密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'a';
刷新權(quán)限
flush privileges;
OK,設(shè)置完成,再次使用 Navicat 連接數(shù)據(jù)庫(kù)
–谷粒商城下的
vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection =utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
下載redis
docker pull redis
創(chuàng)建實(shí)例并啟動(dòng)
mkdir -p /mydata/redis/conf
cd /mydata/redis/conf
touch redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
ls 查看當(dāng)前文件夾下的文件
cat redis.conf
測(cè)試redis
docker exec -it redis redis-cli
由于以前的數(shù)據(jù)全存在內(nèi)存中,從而我們重復(fù)讀取get a的時(shí)候會(huì)導(dǎo)致失敗
[root@localhost conf]# cat redis.conf
[root@localhost conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b" //從而在一次上來(lái)的時(shí)候這塊是null
127.0.0.1:6379> exit
--讓redis 持久化 ---> pwd
127.0.0.1:6379> exit
[root@localhost conf]# pwd
/mydata/redis/conf
[root@localhost conf]# ls
redis.conf
[root@localhost conf]# vi redis.conf
i
appendonly yes
esc :wq
docker restart redis //重啟redis
–設(shè)置開(kāi)機(jī)自啟動(dòng)docker 里邊容器
sudo docker update <容器名> --restart=always
docker 安裝rabbitMQ
---------------docker 安裝rabbitMQ
安裝rabbitMQ,完成消息隊(duì)列的安裝
docker pull rabbitmq
運(yùn)行rabbitmq
docker run -d -p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--hostname myRabbit \
--name rabbitmq \
rabbitmq
-d:表示在后臺(tái)運(yùn)行容器;
-p:將容器的端口 5672(應(yīng)用訪問(wèn)端口)和 15672 (控制臺(tái)Web端口號(hào))映射到主機(jī)中;
-e:指定環(huán)境變量: RABBITMQ_DEFAULT_VHOST:默認(rèn)虛擬機(jī)名; RABBITMQ_DEFAULT_USER:默認(rèn)的用戶名; RABBITMQ_DEFAULT_PASS:默認(rèn)的用戶密碼;
–hostname:指定主機(jī)名(RabbitMQ 的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的 節(jié)點(diǎn)名稱 存儲(chǔ)數(shù)據(jù),默認(rèn)為主機(jī)名);
–name rabbitmq:設(shè)置容器名稱;
rabbitmq:容器使用的鏡像名稱;
— 查看是否啟動(dòng)成功
docker ps
實(shí)際上在這一步,我們發(fā)現(xiàn)直接訪問(wèn)他可能不會(huì)成功,這個(gè)時(shí)候我們就需要對(duì)rabbit進(jìn)行相關(guān)操作。
docker exec -it rabbitmq bash
rabbitmq-plugins enable rabbitmq_management
分別執(zhí)行以上兩條語(yǔ)句,我們發(fā)現(xiàn)就可以正常訪問(wèn)了
http://ip:15672
進(jìn)入rabbitmq后臺(tái),瀏覽器輸入地址加rabbit端口號(hào),即可訪問(wèn)管理頁(yè)面默認(rèn)密碼一般為guest
由于我們?cè)谏鲜鲞\(yùn)行的階段使用的是admin,并且密碼也是admin,故而我們正常使用的時(shí)候就是admin。
如果無(wú)法訪問(wèn),這個(gè)情況我們就需要考慮怎么解決這個(gè)問(wèn)題了。
如果無(wú)法訪問(wèn)可以嘗試開(kāi)啟防火墻 15672 端口:
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
如果進(jìn)入Rabbit MQ的Channels提示Stats in management UI are disabled on this node
那么我們選擇在虛擬機(jī)終端,啟動(dòng)Rabbit MQ,隨后進(jìn)入到Rabbit MQ中去步驟分別如下:
- 進(jìn)入Rabbit MQ
docker exec -it rabbitmq bash
- 第二步,查看配置文件
cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
- 第三步,將配置文件內(nèi)容修改,true變成false
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
- 第四步,退出容器
exit
- 第五步,重啟容器
docker restart rabbitmq
docker 安裝MongoDB
------------------docker 安裝MongoDB
記得這個(gè)是安裝了相關(guān)依賴和docker之后才能進(jìn)行的操作,以下是安裝最新的版本。
docker run -d --restart=always -p 27019:27017 --name mymongo -v /home/mongodb:/data/db -d mongo
MongoDB簡(jiǎn)單的增查操作
好了,第一步完成了,那么第二部,直接從docker鏡像中查看安裝的MongoDB,
docker ps
找到MongoDB的容器id
之后進(jìn)行:
docker exec -it 容器id mongo admin
實(shí)際上這個(gè)時(shí)候就已經(jīng)進(jìn)入到MongoDB里邊了。
我們繼續(xù)添加用戶:
以下是對(duì)容器進(jìn)行管理員添加
db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
如果他顯示
Successfully added user: { “user” : “root”, “roles” : [ { “role” :
“userAdminAnyDatabase”, “db” : “admin” } ] }
代表添加成功了
接下來(lái)我們對(duì)添加的用戶進(jìn)行測(cè)試一下哈
語(yǔ)法是:db.auth(“用戶名”,“密碼”)
db.auth("root","123456")
db.auth(“root”,”root”) 密碼錯(cuò)誤
Error: Authentication failed.
0
db.auth(“root”,”123456”) 密碼正確
1
以上是添加管理員和管理員登錄的操作,接下來(lái)我們進(jìn)行用戶數(shù)據(jù)添加操作。
db.createUser({ user: 'xh', pwd: '123456', roles: [ { role: "readWrite", db: "xh" } ] });
這里我們對(duì)整條語(yǔ)句進(jìn)行分析:
db 代表MongoDB的語(yǔ)法操作
createUser代表創(chuàng)建用戶數(shù)據(jù),可以是普通用戶也可以是管理員,其主要區(qū)別在于后邊的roles的操作,實(shí)際上是對(duì)權(quán)限的管控。
roles :給創(chuàng)建的用戶分配權(quán)限
db:數(shù)據(jù)庫(kù)名,和第一個(gè)db有區(qū)別
使用我們創(chuàng)建的數(shù)據(jù)庫(kù) : 語(yǔ)法use 數(shù)據(jù)庫(kù)名
use test
添加數(shù)據(jù)到數(shù)據(jù)庫(kù)表:
語(yǔ)法:db.表名.save({列名:”數(shù)據(jù)”});
db.test.save({name:"張三"})
既然添加數(shù)據(jù)了,那么就要查詢數(shù)據(jù)了:
查詢數(shù)據(jù):語(yǔ)法查詢MongoDB的所有數(shù)據(jù):db.表名.find()
db.test.find()
具體語(yǔ)法請(qǐng)查看:https://blog.csdn.net/weixin_36810906/article/details/110792096
客戶端連接MongoDBdb
輸入IP地址
端口號(hào):27019 其實(shí)是我定義的,他默認(rèn)是27017
docker 安裝 FDFS-
-------------------------docker 安裝 FDFS------------------------
在我們的項(xiàng)目中有很多需要存儲(chǔ)的內(nèi)容出現(xiàn),比如圖片,視頻,文件等等,在早期的時(shí)候用戶量不大,產(chǎn)生的文件也不是很多,這時(shí)我們可以把文件和服務(wù)程序放在一個(gè)服務(wù)器中。
隨著文件越來(lái)越多,服務(wù)器的資源會(huì)被文件資源大量占據(jù),從而影響到服務(wù)器的穩(wěn)定,這時(shí)我們可以單獨(dú)的把文件服務(wù)器拆出來(lái)。
拆解出來(lái)后,文件服務(wù)的使用不會(huì)影響到我們的系統(tǒng)服務(wù)的穩(wěn)定,但是當(dāng)用戶量越來(lái)越大,存儲(chǔ)的文件就會(huì)越來(lái)越多,這時(shí)如果還是單臺(tái)的文件服務(wù),比如1000T的文件,這時(shí)是存儲(chǔ)不下去的,這時(shí)就產(chǎn)生了我們將的分布式文件存儲(chǔ)。
也就是我們解決如何將這1000T的文件分散的存儲(chǔ)到各個(gè)節(jié)點(diǎn)上,然后當(dāng)我們需要讀取文件的時(shí)候又能非??斓膸臀覀儼盐募业?。這個(gè)就是分布式文件系統(tǒng)幫我們解決的問(wèn)題了。
先去docker hub尋找鏡像文件
docker search fastdfs
拉取鏡像文件
docker pull delron/fastdfs
通過(guò)Docker命令來(lái)創(chuàng)建Tracker服務(wù)
先創(chuàng)建文件夾
mkdir /mydata
cd /mydata
mkdir /tracker
ll
執(zhí)行docker命令
docker run -d --name tracker --network=host -v /mydata/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
注意:tracker服務(wù)默認(rèn)的端口為22122
通過(guò)Docker命令構(gòu)建構(gòu)建Storage服務(wù)
創(chuàng)建文件夾
cd /mydat
mkdir /storage
ll
執(zhí)行命令
docker run -d --name storage --network=host -e TRACKER_SERVER=x.x.x.x:22122 -v /mydata/fastdfs/storage:/var/fdfs -e
GROUP_NAME=group1 delron/fastdfs storage
注意:其中TRACKER_SERVER中的ip要修改為你的Tracker服務(wù)所在的服務(wù)IP地址
默認(rèn)情況下在Storage服務(wù)中是幫我們安裝了Nginx服務(wù)的,相關(guān)的端口為:
服務(wù) 默認(rèn)端口
tracker 22122
storage 23000
Nginx 8888
具體見(jiàn):https://blog.csdn.net/Coder_ljw/article/details/127523362
Linux安裝javaJDK
首先去官網(wǎng)下載一個(gè)java8版本的jdkLinux版本,我的是 jdk-8u371-linux-x64.tar.gz
之后放到你需要指定的目錄下,這個(gè)隨便你,但是你需要記得這個(gè)保存路徑的,這個(gè)是需要使用的。
我一般放到
/mydata/MySoft/
這個(gè)目錄下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-515116.html
- 切換到這個(gè)目錄下
cd /mydata/MySoft/
- 檢查你的文件是否上傳到以上文件夾下,如果有,那么就執(zhí)行第三部,如果沒(méi)有先把文件放過(guò)來(lái)
ls
- 將我們下載的壓縮包解壓
tar -zxf jdk-8u201-linux-x64.tar.gz
- 在檢查一下是否解壓成功,使用第二步的
ls
查看是否存在相應(yīng)文件 - 第五步,配置環(huán)境變量,讓Java生效
sudo vim /etc/profile
- 之后將以下代碼復(fù)制到第五步打開(kāi)的文件下去,注意,第一個(gè)JAVA_HOME是指你解壓jdk的文件,另外強(qiáng)調(diào)一下,vim編輯器的使用,在添加之前需要了解,按
i
,進(jìn)行插入,按esc后:wq
退出vim編輯器
#this is for java environment
export JAVA_HOME=/mydata/MySoft/jdk1.8.0_371
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
- 加載以下環(huán)境變量,讓剛剛配置的環(huán)境變量生效
source /etc/profile
- 驗(yàn)證jdk的環(huán)境變量是否生效
java -version
javac -version
Linux上安裝Tomcat并設(shè)置開(kāi)機(jī)啟動(dòng)
與上邊安裝jdk一樣,在環(huán)境變量下添加以下代碼,啟動(dòng)Tomcat,在Tomcat文件夾下的bin下的startup.sh,關(guān)閉是shutdown.sh;文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-515116.html
# 創(chuàng)建 TOMCAT_HOME 環(huán)境變量, 指向 Tomcat 根目錄
export TOMCAT_HOME=/mydata/MySoft/apache-tomcat-9.0.35
# 創(chuàng)建 Tomcat 服務(wù)器的端口號(hào)環(huán)境變量
export TOMCAT_PORT=8080
# PS: 以后 Tomcat 升級(jí)版本或目錄變更, 默認(rèn)端口變更, 修改這里即可
到了這里,關(guān)于Docker安裝常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!