当前位置: 首页 > backend >正文

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

目录

一.安装docker

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

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

2.安装

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

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

2.3 设置yum源

2.4 安装docker

2.5 docker启动并设置开机自启

2.6 验证docker是否安装成功

二 dockers安装mysql

1 拉取mysql镜像

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

2 查看镜像是否拉取成功

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

 解读:

3.1 docker启动mysql失败

4 连接mysql

 4.1 navicat连接mysql失败

5 进入容器

6 查看mysql容器的详情

三、docker安装nginx

1 拉取nginx镜像

2 创建并运行nginx容器

三 通用指令

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

2  启动docker容器 docker start 容器名

 3 关闭docker容器

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

5 删除镜像

6 查看镜像

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版本的命令这里推荐两种:

lsb_release -a或cat /etc/redhat-release。

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

cat /proc/version
uname -a
uname -r

2.安装

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

`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驱动依赖

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

2.3 设置yum源

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

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

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

curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.4 安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

2.5 docker启动并设置开机自启

sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker

2.6 验证docker是否安装成功

docker --version

二 dockers安装mysql

1 拉取mysql镜像

sudo docker pull mysql:5.7

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

解决连接超时问题

2 查看镜像是否拉取成功

sudo docker images

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

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状态就是启动成功)

# 查看启动的容器进程
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,使用

mysql -uroot -p

 4.1 navicat连接mysql失败

   navicat连接mysql失败

linux启动docker安装的mysql,使用

mysql -h 127.0.0.1 -P 3306 -u root -p

5 进入容器

mysql容器名

docker exec -it mysql /bin/bash

6 查看mysql容器的详情

docker inspect mysql

三、docker安装nginx

1 拉取nginx镜像

docker pull nginx:1.20.2

2 创建并运行nginx容器

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的文件

docker save -o nginx-1.20.2.tar nginx:1.20.2

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

-i 读取哪一个文件

docker load -i nginx-1.20.2.tar

2  启动docker容器 docker start 容器名

# 启动
docker start mysql
# 重启
docker restart mysql

 3 关闭docker容器

docker stop mysql

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

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

5 删除镜像

# 通过镜像名删除
docker rmi 镜像名:版本号
# 通过镜像id删除
docker rmi 镜像id

6 查看镜像

docker images

7 查看容器

docker ps

http://www.xdnf.cn/news/2177.html

相关文章:

  • 华为云Astro canvas大屏与iotDA是怎样通过数据接入、数据中心的功能传输和通讯的?
  • 桌面端开发技术栈选型:开启高效开发之旅
  • WPF框架中异步、多线程、高性能、零拷贝技术的应用示例
  • 基于FFmpeg命令行的实时图像处理与RTSP推流解决方案
  • SpringBoot集成WebSocket,单元测试执行报错
  • lnmp1.5+centos7版本安装php8
  • C++:类和对象(上)---镜中万象:C++类的抽象之境与对象的具体之象
  • gin框架学习笔记
  • 学习笔记(算法学习+Maven)
  • 基于Matlab的MDF文件导入与处理研究
  • 一文详解Adobe Photoshop 2025安装教程
  • SourceTree与git搭建gitcode团队管理项目
  • 精益数据分析(26/126):依据商业模式确定关键指标
  • Python-41:最小替换子串长度
  • uml类关系(实现、继承,聚合、组合,依赖、关联)
  • Word/WPS 删除最后一页空白页,且保持前面布局样式不变
  • Linux——进程间通信
  • Android Compose 框架矢量图标深入剖析(七)
  • C语言中结构体的字节对齐的应用
  • ABAP Object Services
  • 纯PHP写的自适应收款单页源码(对接易支付)
  • WPF 调用 OpenCV 库
  • ChatGPT、deepseek、豆包、Kimi、通义千问、腾讯元宝、文心一言、智谱清言代码能力对比
  • Linux线程与进程:探秘共享地址空间的并发实现与内
  • w~嵌入式C语言~合集3
  • pymongo功能整理与基础操作类
  • 16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Github Action
  • 深入解析 ASP.NET Core 中的 ResourceFilter
  • Eclipse 插件开发 4 工具栏
  • 华为云loT物联网介绍与使用