首页 > 系统相关 >CentOS 7.9 64位 使用docker安装软件过程

CentOS 7.9 64位 使用docker安装软件过程

时间:2024-08-23 15:38:41浏览次数:10  
标签:容器 name CentOS sudo elasticsearch mysql 64 docker

 

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

标签:容器,name,CentOS,sudo,elasticsearch,mysql,64,docker
From: https://www.cnblogs.com/chendezhen/p/18376067

相关文章

  • docker mysql导入导出 nginx
    导出MySQL文件mysqldump--no-tablespaces-uroot-pabc>abc.sql导入MySQL文件mysql-uwpp-pvGgM701wWSBNwj8--default-character-set=utf8wpp<D:\wpp\nest\tmp\wpp.sql问题:docker中MySQL无法输入中文解决:dockerexec-itmysqlenvLANG=C.UTF-8/bin/bash将权限json......
  • P9640 [SNCPC2019] Digit Mode
    思路:定义\(F(l,r)\)表示若已经确定了\([1,l-1]\)的数,且\([l,r]\)没有限制的贡献数。设\(n\)的长度为\(len\),考虑先求出\([1,i](i\lelen-1)\)的贡献(是没有限制的),那么每次枚举第\(1\)位数字\(a_1\in[1,9]\),算上\(F(2,i)\)的贡献即可。则该情况贡献和为:\[\su......
  • centos单网卡配置VLAN,ubuntu当网卡配置VLAN,vlanid=1000
    root@ubuntu:~#cat/etc/netplan/01-netcfg.yaml#Thisfiledescribesthenetworkinterfacesavailableonyoursystem#Formoreinformation,seenetplan(5).network:version:2renderer:networkdethernets:enp9s0:dhcp4:novlans:......
  • Docker部署Nginx,无法访问的解决办法
    最近用阿里云的服务器部署了一下Nginx,发现无法通过外网访问,排除掉防火墙和端口映射的问题,最终在阿里云官方发现解决办法,docker0网桥的网段与内网eth0网段冲突,可能导致Nginx无法访问,修改Docker的网段后正常访问.1.运行以下命令,查看docker0和eth0网段是否冲突route如果回显信......
  • [每周一更]-(第111期):从零开始:如何在 CentOS 上源码编译安装 PHP 7.4
    文章目录系统信息:0、安装版本:1、下载/解压2、安装依赖3、配置autoconf4、配置参数5、编译和安装6、验证安装的插件6.1、配置php.ini6.2、配置opcache7、错误7.1Failedtoconnectto2a03:2880:f10e:83:face:b00c:0:25de:Networkisunreachable7.1.1禁用yum使用I......
  • docker启动问题: Job for docker.service failed because the control process exited
    系统环境:centos7docker版本:Dockerversion26.1.4,build5650f9b问题:Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusdocker.service"and"journalctl-xe"fordetails.使用systemctlstatus......
  • Docker 的基本管理
    1.Docker的概述    如果要方便的创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间地点可获取这些资源,这正是Docker所能提供的。Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用......
  • 容器设置日志驱动程序 - docker --log-driver
    环境:在创建docker时候遇到该异常信息:docker:Errorresponsefromdaemon:logger:nologdrivernamed'local'isregistered.在linux系统下使用docker进行容器创建时候,一般情况下会对docekr的日志驱动做设置,以避免文件过大导致磁盘占满的情况,如下记录自己的一些经理,希望对朋......
  • docker容器c如果无法下载,源问题无法连接
    解决方法:sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{  "registry-mirrors":[    "https://do.nark.eu.org",    "https://dc.j8.work",    "https://docker.m.daocloud.io&......
  • Windows11 Docker镜像存储路径更改(非C盘路径)
    前言基于WSL2安装docker后,在使用过程中会发现大量的docker镜像文件,使系统C盘容量激增,对电脑后续使用造成不便,所以需要在安装的时候,手动修改docker的镜像地址,使得镜像文件保存到另外的非系统盘中。原因最新的windows提供了新的虚拟化技术(WSL/WSL2),所以设置页面不能镜像的存储位......