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