CentOS 7.9 64位 使用docker安裝軟體過程

划边逅發表於2024-08-23

CentOS 7(使用 yum 進行安裝 docker):
# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 新增軟體源資訊
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新並安裝Docker-CE(社群版本)
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start
# step 5:安裝Docker Compose(可選)
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
驗證Docker Compose的安裝:
docker-compose --version
# step 6:配置Docker(可選)
你可以將當前使用者新增到 docker 組,以便在使用Docker時無需使用 sudo:
sudo usermod -aG docker $USER
注意:執行完上述命令後,建議你退出當前SSH會話,然後重新登入以使更改生效。

#step 7: 檢視docker是否啟動
(sudo)systemctl status docker

# step 8:配置映象加速
--------------
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker
--------------------
5. 管理 MySQL 容器
停止容器:
sudo docker stop mysql-container

啟動容器:
sudo docker start mysql-container

檢視容器日誌:
sudo docker logs mysql-container
刪除容器:

sudo docker rm mysql-container

刪除映象(在刪除所有容器之後):
sudo docker rmi mysql

-------------docker 安裝 mysql 過程-(1)配置阿里雲的安全組,把埠號3306配置上去。----------------------
下面可以不使用sudo開頭(如果設定了docker step 6)
獲取 MySQL 映象:
1.Docker Hub 是一個公共的映象倉庫,你可以從中獲取 MySQL 映象。使用以下命令來拉取官方的 MySQL 映象:
sudo docker pull mysql

2.執行 MySQL 容器
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=root1234 -p 3306:3306 -d mysql:latest
命令引數說明:
--name mysql-container: 給你的 MySQL 容器命名為 mysql-container。你可以使用任何你喜歡的名稱。
-e MYSQL_ROOT_PASSWORD=my-secret-pw: 設定 MySQL 根使用者的密碼為 my-secret-pw。你可以更改為你自己的密碼。
-d: 以後臺模式執行容器(即分離模式)。
mysql:latest: 使用最新版本的 MySQL 映象。如果你需要指定特定版本,可以替換 latest 為版本號,比如 mysql:5.7。

3.連線到 MySQL 容器
使用 docker exec 連線:
sudo docker exec -it mysql-container mysql -uroot -p

4.持久化資料
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=root1234 -v /my/own/datadir:/var/lib/mysql -d mysql:latest
:-v /my/own/datadir:/var/lib/mysql: 將主機上的目錄 /my/own/datadir 對映到容器內的 /var/lib/mysql,這是 MySQL 資料儲存的預設位置

5.確保 MySQL 配置允許遠端訪問。你可以透過以下命令進入容器並檢查配置:
sudo yum install vim
sudo yum install vi
(1)配置阿里雲的安全組,把埠號3306配置上去。
(2)防火牆規則檢視
sudo iptables -L -n
(3)如果 3306 埠被阻止,可以新增規則允許訪問:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
儲存規則並重啟防火牆服務:
sudo iptables-save

------
docker exec -it mysql bash
cat <<EOF > /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/9.0/en/server-configuration-defaults.html

[mysqld]
bind-address = 0.0.0.0
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

host-cache-size=0
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/

EOF

-------------docker 安裝 redis 過程-配置阿里雲的安全組,把埠號6379配置上去。----------------------
1.從 Docker Hub 拉取 Redis 映象:
docker pull redis
2.執行 Redis 容器
docker run --name redis -p 6379:6379 -d redis
--name my-redis:給容器起一個名字(可以自定義)。
-d:後臺執行容器。
redis:使用 Redis 映象。
3.檢視容器執行狀態
docker ps -a

4.連線到 Redis 容器
docker exec -it my-redis redis-cli

在 redis-cli 中,你可以執行 Redis 命令,例如:
127.0.0.1:6379> ping

5.配置持久化儲存(可選)
docker run --name redis -d -v /my/own/datadir:/data redis redis-server --appendonly yes
-v /my/own/datadir:/data:將主機的 /my/own/datadir 目錄掛載到容器的 /data 目錄。
redis-server --appendonly yes:啟用 AOF 持久化。

-------------docker 安裝 ElasticSearch 過程-----------------------
1.拉取 Elasticsearch 映象
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0
(請替換 7.10.0 為你需要的 Elasticsearch 版本。)
2.執行 Elasticsearch 容器
docker run --name elasticsearch -d \
-e "discovery.type=single-node" \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:7.10.0
--name elasticsearch:給容器起一個名字(可以自定義)。
-e "discovery.type=single-node":設定 Elasticsearch 為單節點模式。
-p 9200:9200:將主機的 9200 埠對映到容器的 9200 埠(HTTP API)。
-p 9300:9300:將主機的 9300 埠對映到容器的 9300 埠(叢集內部通訊)。

3.檢查 Elasticsearch 容器狀態
docker ps
4.測試 Elasticsearch
訪問 Elasticsearch HTTP API 來確認是否正常執行:
curl http://localhost:9200
你應該看到類似於以下的響應:
{
"name": "your-node-name",
"cluster_name": "elasticsearch",
"cluster_uuid": "some-cluster-uuid",
"version": {
"number": "7.10.0",
...
},
"tagline": "You Know, for Search"
}

5. 安裝分詞解析器外掛(如中文分詞外掛)
進入到 Elasticsearch 容器中安裝外掛:
docker exec -it elasticsearch /bin/bash
然後在容器內部使用 elasticsearch-plugin 安裝外掛(例如 IK 分詞外掛):
bin/elasticsearch-plugin install https://github.com/ik-analyzer/ik-analyzer/releases/download/v7.10.0/elasticsearch-analysis-ik-7.10.0.zip
重啟 Elasticsearch 容器以使外掛生效:
exit
docker restart elasticsearch

6. 驗證安裝
確保 Elasticsearch 正常執行並外掛安裝成功:
curl -X GET "localhost:9200/?pretty"
檢視已安裝的外掛:
curl -X GET "localhost:9200/_cat/plugins?v"

7.配置持久化儲存(可選)
如果需要持久化儲存資料,將資料目錄掛載到主機目錄:
docker run --name elasticsearch -d \
-e "discovery.type=single-node" \
-p 9200:9200 \
-p 9300:9300 \
-v /my/own/datadir:/usr/share/elasticsearch/data \
docker.elastic.co/elasticsearch/elasticsearch:7.10.0

-------------ElasticSearch 叢集--------------
建立 Docker Compose 配置檔案
在一個目錄中建立一個 docker-compose.yml 檔案,並配置 Elasticsearch 叢集。以下是一個示例配置檔案:
version: '3.7'

services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
container_name: es1
environment:
- node.name=es1
- cluster.name=es-cluster
- discovery.seed_hosts=elasticsearch2,elasticsearch3
- cluster.initial_master_nodes=es1,es2,es3
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- "9200:9200"

elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
container_name: es2
environment:
- node.name=es2
- cluster.name=es-cluster
- discovery.seed_hosts=elasticsearch1,elasticsearch3
- cluster.initial_master_nodes=es1,es2,es3
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data

elasticsearch3:
image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
container_name: es3
environment:
- node.name=es3
- cluster.name=es-cluster
- discovery.seed_hosts=elasticsearch1,elasticsearch2
- cluster.initial_master_nodes=es1,es2,es3
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata3:/usr/share/elasticsearch/data

volumes:
esdata1:
driver: local
esdata2:
driver: local
esdata3:
driver: local
--------啟動 Elasticsearch 叢集
在 docker-compose.yml 檔案所在的目錄中,執行以下命令啟動叢集:
docker-compose up -d

驗證叢集狀態
curl http://localhost:9200/_cat/nodes?v
curl http://localhost:9200/_cluster/health?pretty

相關文章