Linux安裝Docker
配置源
# 備份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成緩存
yum makecache
虛擬機(jī)安裝docker
# 卸載系統(tǒng)之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils
# 配置鏡像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
# 設(shè)置開機(jī)自啟動(dòng)
sudo systemctl enable docker
docker -v
sudo docker images
# 配置鏡像加速(阿里云鏡像)
https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0epfm98a.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
注意重啟虛擬機(jī)和docker后里面的容器就關(guān)了
sudo docker ps
sudo docker ps -a
# 這兩個(gè)命令的差別就是后者會(huì)顯示 【已創(chuàng)建但沒有啟動(dòng)的容器】
# 設(shè)置要用的容器每次都是自動(dòng)啟動(dòng)
sudo docker update redis --restart=always
sudo docker update mysql --restart=always
# 如果不配置可以選擇手動(dòng)啟動(dòng)
sudo docker start mysql
sudo docker start redis
# 如果要進(jìn)入已啟動(dòng)的容器
sudo docker exec -it mysql /bin/bash
# /bin/bash就是進(jìn)入一般的命令行
Docker安裝mysql
sudo docker pull mysql:5.7
# --name指定容器名字 -v目錄掛載 -p指定端口映射 -e設(shè)置mysql參數(shù) -d后臺(tái)運(yùn)行
sudo 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
# 查看docker容器
docker ps
# 進(jìn)入容器
docker exec -it mysql bin/bash
# 因?yàn)橛心夸浻成洌晕覀兛梢灾苯釉阽R像外執(zhí)行 mysql配置
vi /mydata/mysql/conf/my.conf
[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
# 重啟
docker restart mysql
Docker安裝Redis
如果直接掛載的話docker會(huì)以為掛載的是一個(gè)目錄舷手,所以我們先創(chuàng)建一個(gè)文件然后再掛載庶近,在虛擬機(jī)中挫剑。
# 在虛擬機(jī)中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker pull redis
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
# 直接進(jìn)去redis客戶端眶根。
docker exec -it redis redis-cli
默認(rèn)是不持久化的推沸。在配置文件中輸入appendonly yes竭缝,就可以aof持久化了希太。修改完docker restart redis,docker -it redis redis-cli
vim /mydata/redis/conf/redis.conf
# 插入下面內(nèi)容
appendonly yes
#保存重啟
docker restart redis
設(shè)置redis容器在docker啟動(dòng)的時(shí)候啟動(dòng)
docker update redis --restart=always
Docker安裝Nginx
docker pull nginx:1.10
# 隨便啟動(dòng)一個(gè)nginx實(shí)例琅锻,只是為了復(fù)制出配置
docker run -p 80:80 --name nginx -d nginx:1.10
cd /mydata/nginx
docker container cp nginx:/etc/nginx .
# 然后在外部 /mydata/nginx/nginx 有了一堆文件
mv /mydata/nginx/nginx /mydata/nginx/conf
# 停掉nginx
docker stop nginx
docker rm nginx
# 創(chuàng)建新的nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
docker update nginx --restart=always
# 測試
cd /mydata/nginx/html/
vim index.html
隨便寫寫
測試 http://192.168.56.10:80
Docker安裝ElasticSearch和Kibana
- 下載elastic search(存儲(chǔ)和檢索)和kibana(可視化檢索)
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
版本要統(tǒng)一
- 配置
# 將docker里的目錄掛載到linux的/mydata目錄中
# 修改/mydata就可以改掉docker里的
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
# es可以被遠(yuǎn)程任何機(jī)器訪問
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
# 遞歸更改權(quán)限卦停,es需要訪問
chmod -R 777 /mydata/elasticsearch/
- 啟動(dòng)elastic search
# 9200是用戶交互端口 9300是集群心跳端口
# -e指定是單階段運(yùn)行
# -e指定占用的內(nèi)存大小,生產(chǎn)時(shí)可以設(shè)置32G
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
# 查看運(yùn)行日志
docker logs elasticsearch
# 因?yàn)槿萜鲀?nèi)的文件映射到了外面恼蓬,所以刪除容器和新建容器數(shù)據(jù)還在
# 數(shù)據(jù)掛在到外面惊完,但是訪問權(quán)限不足,把/mydata/elasticsearch下文件夾的權(quán)限設(shè)置好
- 設(shè)置開機(jī)啟動(dòng)elasticsearch
docker update elasticsearch --restart=always
- 啟動(dòng)Kibana
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d kibana:7.4.2
- 設(shè)置開機(jī)啟動(dòng)kibana
docker update kibana --restart=always
Docker安裝RabbitMQ
1处硬, 下載RabbitMq并啟動(dòng)
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
- 設(shè)置開機(jī)啟動(dòng)RabbitMQ
docker update rabbitmq --restart=always