Linux 安装 docker,使用docker 安装mysql、redis、jdk、nginx、minio

Linux 安装 docker,使用docker 安装mysql、redis、jdk、nginx、minio

1、安装docker

这里使用的是阿里云的CentOS 操作系统

废话不多说,直接安装

1.1、首先安装一些必要的工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2、添加软件源信息

这里使用的是阿里云源,可根据自己需求来进行选择

源1:(官方推荐)

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

源2:(阿里云源)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3、更新 yum缓存:

sudo yum makecache fast

1.4、安装Docker-CE

sudo yum -y install docker-ce

1.5、启动Docker 后台服务

sudo systemctl start docker
1.5.1、启动docker服务(并设置开机自启)
systemctl start docker.service
systemctl enable docker.service

1.6、安装完成后可以自测下是否安装成功

docker version

或者

sudo docker run hello-world

在这里插入图片描述

1.7、重启Docker服务

sudo systemctl restart docker

查看docker是否安装成功

yum list installed |grep docker

查看docker运行状态

systemctl status docker

在这里插入图片描述

卸载:

执行以下命令可以删除Docker CE:

$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker

2、docker 安装 MySql

2.1、获取Mysql镜像

在docker官方镜像仓库中搜索需要安装的镜像,地址https://hub.docker.com/
我这里安装的是8.0.26

# 此命令下载的是最新版
docker pull mysql
 
# 此命令下载的是指定版本的
docker pull mysql:5.7

2.2、查看拉取的镜像

docker images

在这里插入图片描述

2.3、然后需要在宿主机上创建对应的文件夹用于容易挂载,易于管理MySQL配置文件等,(当前操作目录是在/home下),创建mysql目录并进入创建conf,data两个目录

mkdir -p mysql && cd $_ && mkdir {conf,data}

2.4、在我们的/home/mysql/conf/下有个my.cnf 文件,需要修改

或者你可以新建一个

touch my.cnf
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# Custom config should go here
!includedir /etc/mysql/conf.d
 
max_connections=1000
wait_timeout=120
interactive_timeout=300
lower_case_table_names=1

2.5、开始创建MySQL容器

docker run --restart=unless-stopped -d --name mysql -p 3306:3306 -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.26

2.6、目前mysql容器启动成功以后,我们远程连接还是会报错的,由于mysql8加密规则问题,我们需要进入到mysql中进行修改加密规则以及更新用户密码再刷新一下权限即可

docker exec -it mysql /bin/bash
mysql -uroot -p
输入mysql容器创建时指定的密码(-e MYSQL_ROOT_PASSWORD=root):root

我的密码是root,根据情况修改

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

注意:此处修改的是root的localhost方式,可以查看是否可以远程连接,如果不能,可继续设置如下

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

如果还是连接不上,就有可能是防火墙没开

firewall-cmd --list-ports #查看端口开放情况

firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放3306端口

systemctl restart firewalld.service #重启防火墙

还有一种可能,my.cnf 配置文件中 需要关闭本机访问的功能(这种情况是走的默认配置,不是的请跳过)

# 如果有如下语句需要注释掉
bind-adress=127.0.0.1
#改为
#bind-adress=127.0.0.1

这里一般情况就能连接成功,但是如果是阿里云服务器的话需要到安全组里开放端口
在这里插入图片描述

3、安装jdk

目前搜寻出两种安装方式:1通过已有的镜像直接pull安装;2自己通过dockerfile等命令打包一个镜像安装(此种方式我们到已有镜像满足不了自身需求时使用);

3.1、根据文章docker安装指定版本的tag镜像得到安装jdk的docker命令 这里安装jdk1.8

docker pull primetoninc/jdk:1.8

3.2、尝试进入/etc/docker目录,查看文件。发现没有daemon.json文件,那么我们创建该文件。

touch daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF

3.3、刷新配置文件并重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

3.4、查看本地镜像

docker images

3.5、启动jdk容器(其中,–name=后的jdk1.8是为容器指定了一个别名,而最后的primetoninc/jdk:1.8那个指的是下载镜像时的名称。)该命令的意思为:使用docker镜像primetoninc/jdk:1.8以后台模式启动一个容器,并将容器命名为jdk1.8

docker run -it --name jdk1.8 -d primetoninc/jdk:1.8

3.6、进入容器,查看是否安装成功

sudo docker exec -it jdk1.8 /bin/bash

或者

java -version

4、安装Redis

4.1、拉取redis镜像

docker pull redis:6.0.5

在这里插入图片描述

4.2、redis启动分两种

4.2.1、直接启动redis
 docker run --name redis -d redis:6.0.5
4.2.2、配置文件启动redis
  • 1、创建文件,存放redis.conf
mkdir /home/docker_redis
cd /homme/docker_redis
  • 2、下载redis.conf文件
wget http://download.redis.io/redis-stable/redis.conf
  • 3、文件授权
chmod 777 redis.conf
  • 4、修改默认配置
vim /home/docker_redis/redis.conf

文件修改小助手
vim 可以设置行号,搜索等功能,快速帮我们定位到需要修改的位置
vim /redis.conf 进入文件后
使用 :set number 打开行号,如果想永久设置需要看下博主的设置Linux永久设置vim行号
接下来我们可以进行搜索 bind 关键字
使用 :/bind 进行查找 使用键盘上 N 键向下寻找,直到找到为止,使用i进行编辑修改;

  • 4.1、注释掉127.0.0.1,解除本地连接限制
    在这里插入图片描述
  • 4.2、protected-mode yes 保护模式,限制为本地访问,修改后解除保护模式
    在这里插入图片描述
  • 4.3、daemonize 默认no 为不守护进程模式,修改为yes
    在这里插入图片描述
  • 4.4、设置密码,建议设置
    在这里插入图片描述
  • 4.5、持久化(想要设置更改为 yes)
    在这里插入图片描述
:wq!   #保存修改
  • 5、启动Redis
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /home/dokcer_redis/redis.conf:/etc/redis/redis.conf  -v /home/dokcer_redis/data:/data -d redis:6.0.5 redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456

说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–log 日志相关
–name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分(必须为绝对路径),:后表示容器部分。
/home/dokcer_redis/redis.conf:/etc/redis/redis.conf 挂载我的配置文件
/home/dokcer_redis/data:/data 挂载redis的数据路径
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 指定配置文件的路径。/etc/redis/redis.conf指的是容器内的文件路径,对应的宿主机的路径要根据挂载卷的路径找到。我的宿主机路径就是/home/dokcer_redis/redis.conf
–appendonly yes 开启redis 持久化
–requirepass rootroot 设置密码为123456

  • 6、验证redis安装成功
  • 查看容器id docker ps -a
  • 进入容器 docker exec -it 容器id redis-cli #调用客户端
  • 输入密码auth '123456'
  • set name tome
  • get name

进入容器
在这里插入图片描述
进行set值
在这里插入图片描述

4.3、这时候我们的客户端是连不上redis的

需要开放防火墙
firewall-cmd --list-ports #查看端口开放情况

firewall-cmd --zone=public --add-port=6379/tcp --permanent #开放3306端口

systemctl restart firewalld.service #重启防火墙

一般自己的linux是可以访问的,如果是阿里云服务器需要去 安全组配置规则 开放端口才可以。

5、安装nginx

方式一、

5.1、拉去镜像

docker pull nginx:1.20.1

5.2、启动nginx

docker run --name=nginx   -d  --restart=always -p  80:80   nginx:1.20.1

5.3、进入容器内部

docker exec -it 2a5a7b2756c9 /bin/bash

5.4、进入nginx文件目录,修改首页内容

#进入到容器内部
cd /
cd /usr/share/nginx/html

#修改首页内容
echo "www.GGBond.com" > index.html

#查看修改结果
cat index.html

#退出容器重启Nginx容器
exit

#重启nginx
docker stop 2a5a7b2756c9
docker start 2a5a7b2756c9

方式二、

首先我们需要启动nginx 拷贝nginx.conf 文件

#1、启动nginx
docker run --name=nginx   -d  --restart=always -p  80:80   nginx:1.20.1
#2、查看nginx 容器ID
docker ps -a
#3、找到容器ID把文件拷贝到指定目录,这里是/home/nginx/conf/nginx.conf
docker cp b5f5b04c83fe:/etc/nginx/nginx.conf  /home/nginx/conf/nginx.conf
#4、拷贝好后,去目录查看是否存在
cd /home/nginx/conf/
#5、存在就将容器停止并删除
docker stop b5f5b04c83fe
docker rm b5f5b04c83fe
#6、这时候我们进行挂载配置文件和html进行启动nginx,这样我们日后修改配置文件和页面就不需要去容器里了
docker run -d -p 80:80 -v /home/nginx/html:/usr/share/nginx/html:ro -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf --name nginx-02 nginx:1.20.1
#7、查看容器启动是否成功
docker ps -a
#8、访问80端口查看页面,一般情况我们需要将端口开放,阿里云服务器,需要去安全组开放端口,否则无法访问。

#把容器指定位置的东西复制出来 
docker cp b5f5b04c83fe:/etc/nginx/nginx.conf  /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp  /home/nginx/conf/nginx.conf  b5f5b04c83fe:/etc/nginx/nginx.conf

6、安装minio,目前只是基础安装和使用,没涉及到集群

6.1、安装

docker pull minio/minio

查看镜像

docker images

6.2、创建目录:一个用来存放配置,一个用来存储上传文件的目录。

mkdir -p /home/minio/config
mkdir -p /home/minio/data

6.3、启动minio

注意,正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功

docker run -p 9000:9000 -p 9090:9090 \
 --net=host \
 --name minio \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=minioadmin" \
 -e "MINIO_SECRET_KEY=minioadmin" \
 -v /home/minio/data:/data \
 -v /home/minio/config:/root/.minio \
 minio/minio server \
 /data --console-address ":9090" -address ":9000"

6.4、访问地址

http://ip:9090 出现以下,就说明成功了
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤在Docker中部署和安装jdk1.8、Redis 3.2、NginxMySQL 5.7: 1. 安装Docker:根据你的操作系统,安装适合的Docker版本。你可以在Docker官方网站上找到相关的安装指南。 2. 拉取镜像:打开终端或命令提示符,执行以下命令拉取所需的镜像: - JDK 1.8:`docker pull openjdk:8-jdk` - Redis 3.2:`docker pull redis:3.2` - Nginx:`docker pull nginx` - MySQL 5.7:`docker pull mysql:5.7` 3. 创建容器: - JDK 1.8:执行以下命令创建一个名为`jdk-container`的JDK容器,并将宿主机的某个目录挂载到容器中的`/app`目录下: ``` docker run -d --name jdk-container -v /host/path:/app openjdk:8-jdk ``` - Redis 3.2:执行以下命令创建一个名为`redis-container`的Redis容器,并将容器的6379端口映射到宿主机的6379端口: ``` docker run -d --name redis-container -p 6379:6379 redis:3.2 ``` - Nginx:执行以下命令创建一个名为`nginx-container`的Nginx容器,并将容器的80端口映射到宿主机的80端口: ``` docker run -d --name nginx-container -p 80:80 nginx ``` - MySQL 5.7:执行以下命令创建一个名为`mysql-container`的MySQL容器,并将容器的3306端口映射到宿主机的3306端口。同时,设置MySQL的root用户密码为`your_password`: ``` docker run -d --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql:5.7 ``` 4. 进入容器: - JDK 1.8:执行以下命令进入`jdk-container`容器: ``` docker exec -it jdk-container bash ``` - Redis 3.2:执行以下命令进入`redis-container`容器: ``` docker exec -it redis-container bash ``` - Nginx:执行以下命令进入`nginx-container`容器: ``` docker exec -it nginx-container bash ``` - MySQL 5.7:执行以下命令进入`mysql-container`容器: ``` docker exec -it mysql-container bash ``` 在进入容器后,你可以执行相应的命令来配置和使用各个软件。 这些步骤可以帮助你在Docker中部署安装JDK 1.8、Redis 3.2、NginxMySQL 5.7。请确保你已经安装Docker,并具有适当的权限来执行相关的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值