安装docker,在docker上安装mysql,docker上安装nginx

目录

一.安装docker

1.1查看Linux版本的命令这里推荐两种:

1.2查看内核版本有三种方式:

2.安装

[2.1 如果之前安装了docker,先删除旧版本的doker](#2.1 如果之前安装了docker,先删除旧版本的doker)

[2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖](#2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖)

[2.3 设置yum源](#2.3 设置yum源)

[2.4 安装docker](#2.4 安装docker)

[2.5 docker启动并设置开机自启](#2.5 docker启动并设置开机自启)

[2.6 验证docker是否安装成功](#2.6 验证docker是否安装成功)

[二 dockers安装mysql](#二 dockers安装mysql)

[1 拉取mysql镜像](#1 拉取mysql镜像)

[1.1 拉取提示超时,根据下面的博客解决](#1.1 拉取提示超时,根据下面的博客解决)

[2 查看镜像是否拉取成功](#2 查看镜像是否拉取成功)

[3 运行mysql镜像,启动实例/容器](#3 运行mysql镜像,启动实例/容器)

解读:

[3.1 docker启动mysql失败](#3.1 docker启动mysql失败)

[4 连接mysql](#4 连接mysql)

[4.1 navicat连接mysql失败](#4.1 navicat连接mysql失败)

[5 进入容器](#5 进入容器)

[6 查看mysql容器的详情](#6 查看mysql容器的详情)

三、docker安装nginx

[1 拉取nginx镜像](#1 拉取nginx镜像)

[2 创建并运行nginx容器](#2 创建并运行nginx容器)

[三 通用指令](#三 通用指令)

[1 将镜像保存为文件,让别人也能使用这个镜像,以nginx为例](#1 将镜像保存为文件,让别人也能使用这个镜像,以nginx为例)

[2 启动docker容器 docker start 容器名](#2 启动docker容器 docker start 容器名)

[3 关闭docker容器](#3 关闭docker容器)

[4 删除容器,需要先停止容器](#4 删除容器,需要先停止容器)

[5 删除镜像](#5 删除镜像)

[6 查看镜像](#6 查看镜像)

[7 查看容器](#7 查看容器)

一.安装docker

1、Docker及系统版本 Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)。相对于社区版本,企业版本强调安全性,但需付费使用。这里我们使用社区版本即可。

Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。

1.1查看Linux版本的命令这里推荐两种:

bash 复制代码
lsb_release -a或cat /etc/redhat-release。

1.2查看内核版本有三种方式:

bash 复制代码
cat /proc/version
uname -a
uname -r

2.安装

2.1 如果之前安装了docker,先删除旧版本的doker

bash 复制代码
`yum remove docker` \`
                  `docker-client \`
                  `docker-client-latest \`
                  `docker-common \`
                  `docker-latest \`
                  `docker-latest-logrotate \`
                  `docker-logrotate \`
                  `docker-selinux \`
                  `docker-engine-selinux \`
                  `docker-engine \`
                  `docker-ce`

2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖

bash 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2

2.3 设置yum源

bash 复制代码
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

如果出现下载缓慢,或者如下图的报错,可以切换成国内的镜像源,如阿里云

下载阿里云的docker镜像仓库文件

bash 复制代码
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.4 安装docker

bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io

2.5 docker启动并设置开机自启

bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io
bash 复制代码
sudo systemctl enable docker

2.6 验证docker是否安装成功

bash 复制代码
docker --version

二 dockers安装mysql

1 拉取mysql镜像

bash 复制代码
sudo docker pull mysql:5.7

1.1 拉取提示超时,根据下面的博客解决

解决连接超时问题

2 查看镜像是否拉取成功

bash 复制代码
sudo docker images

3 运行mysql镜像,启动实例/容器

bash 复制代码
sudo docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7 \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql

解读:

  • mysql/log: 存储MySQL日志

  • mysql/data: 是数据库文件(库表数据存放处)存放的地方。必须要挂载到容器外,否则容器重启一切数据消失。

  • mysql/conf: mysql配置,mysql启动时读取配置

  • 设置端口映射:外部访问宿主机的端口3306,会将这个请求交给容器的3306端口处理,即可以让外部访问到容器

镜像名称组成: 镜像名:镜像的版本。如果没有指定版本,默认是latest,代表最新的版本镜像

查看docker启动的容器执行情况(up状态就是启动成功)

bash 复制代码
# 查看启动的容器进程
sudo docker ps
# 查看所有的容器
sudo docker ps -a

可以看到容器的状态是启动(up),创建时间33分钟前,容器名称mysql,linux的3306端口映射到了mysql的3306端口,所以之后连接linux的3306,相当于操作到了docker容器的mysql监听的3306端口

3.1 docker启动mysql失败

docker启动mysql失败

4 连接mysql

linux启动linux安装的mysql,使用

bash 复制代码
mysql -uroot -p

navicat连接mysql失败

linux启动docker安装的mysql,使用

bash 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

5 进入容器

mysql容器名

bash 复制代码
docker exec -it mysql /bin/bash

6 查看mysql容器的详情

bash 复制代码
docker inspect mysql

三、docker安装nginx

1 拉取nginx镜像

bash 复制代码
docker pull nginx:1.20.2

2 创建并运行nginx容器

bash 复制代码
docker run -d --name nginx -p 80:80 nginx:1.20.2
  • -d:后台运行容器。

  • -p 80:80:将容器的80端口映射到宿主机的80端口。

  • --name nginx:为容器指定一个名称,这里是nginx

  • nginx:1.20.2:指定拉取的Nginx镜像,如果在本地已经存在,就直接使用,如果不存在,就去镜像仓库拉取

出现下面的图片就是成功

三 通用指令

1 将镜像保存为文件,让别人也能使用这个镜像,以nginx为例

-o 将镜像输出为什么样的文件,即将nginx:1.20.2的镜像保存为nginx-1.20.2.tar的文件

bash 复制代码
docker save -o nginx-1.20.2.tar nginx:1.20.2

保存完之后通过xftp将linux的nginx文件下载下来,然后发送给别人,别人通过xftp上传到宿主机上,然后使用指令解压

-i 读取哪一个文件

bash 复制代码
docker load -i nginx-1.20.2.tar

2 启动docker容器 docker start 容器名

bash 复制代码
# 启动
docker start mysql
# 重启
docker restart mysql

3 关闭docker容器

bash 复制代码
docker stop mysql

4 删除容器,需要先停止容器

bash 复制代码
# 停止容器后
# 通过容器名删除
docker rm 容器名
# 通过容器id删除
docker rm 容器id
# 如果为停止容器,也可以使用下面的指令强制删除
docker rm -f 容器名

5 删除镜像

bash 复制代码
# 通过镜像名删除
docker rmi 镜像名:版本号
# 通过镜像id删除
docker rmi 镜像id

6 查看镜像

bash 复制代码
docker images

7 查看容器

bash 复制代码
docker ps
相关推荐
PWRJOY5 分钟前
在 Ubuntu 24.04 系统上安装和管理 Nginx
linux·nginx·ubuntu
码熔burning10 分钟前
【MQ篇】RabbitMQ之消费失败重试!
java·分布式·rabbitmq·mq
Haoea!24 分钟前
java-mybatis01
java·数据库·oracle
zandy101125 分钟前
衡石科技:HENGSHI SENSE 数据权限解决方案
java·数据库·科技
学编程的小程40 分钟前
Spring MVC深度解析:从原理到实战
java·spring·mvc
每次的天空43 分钟前
Android学习总结之扩展基础篇(一)
android·java·学习
启明真纳1 小时前
统信操作系统使用默认yum源安装 Docker 的踩坑
运维·docker·容器
多多*1 小时前
非关系型数据库 八股文 Redis相关 缓存雪崩 击穿 穿透
java·开发语言·jvm·数据库·redis·缓存·nosql
lee_yanyi1 小时前
《一键式江湖:Docker Compose中间件部署108式》开篇:告别“配置地狱”,从此笑傲云原生武林!》
docker·云原生·中间件
2401_890665861 小时前
免费送源码:Java+ssm+HTML 三分糖——甜品店网站设计与实现 计算机毕业设计原创定制
java·python·微信小程序·html·php·课程设计·android-studio