【Docker学习记录】安装docker、安装mysql-docker、安装redis-docker、安装nginx-docker

简介: 在云服务器上安装docker、安装mysql-docker、安装redis-docker、安装nginx-docker,非常适合新手!

准备

本人在校大三学生通同学介绍的方式了解到“飞天加速计划·高校学生在家实践”活动,很感谢有一个这么好的学习机会,我在此写一些我的学习笔记,和社区的同学们一起学习交流。

XShell7 相关

下载一个XShell7,百度一下有教程

阿里云服务器

新用户或者学生可以使用免费的阿里云服务器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5heoEYYT-1653121073033)(https://gitee.com/key2136/typora/raw/master/img/image-20220513221220117.png)]

在这里找到自己的实例,然后安全组增加自己的端口号,操作如下:

左侧边栏-->安全组-->配置规则-->快速添加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-52bHJRJA-1653121073034)(https://gitee.com/key2136/typora/raw/master/img/image-20220513221621404.png)]

把自己需要的添加上

连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TbhyMCyn-1653121073035)(https://gitee.com/key2136/typora/raw/master/img/image-20220513220746214.png)]

主机:填写自己阿里云的ip 或者 主机名

输入密码

https://gitee.com/key2136/typora/raw/master/img/image-20220513221737437.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJ480RCd-1653121073036)(https://gitee.com/key2136/typora/raw/master/img/image-20220513221920182.png)]

接收并保存

一般都会连接成功

linux环境搭建

安装docker

docker官网:https://hub.docker.com/

#卸载系统之前的docker 
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
# sudo 是普通用户使用root的权限,若为root用户,不必加sudo                  
sudo yum install -y yum-utils

# 配置镜像 国内镜像 速度快
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动docker
sudo systemctl start docker

# 设置开机自启动
sudo systemctl enable docker

#查看版本 
docker -v

# 查看是否启动
sudo docker images

# 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

安装mysql-docker

docker官网:https://hub.docker.com/ 搜索mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6v8UAdfY-1653121073037)(https://gitee.com/key2136/typora/raw/master/img/image-20220513223605898.png)]

docker pull mysql:5.7

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

挂载:这里的将docker容器的mysql的log、data、conf文件在linux里创建一个"快捷方式且同步修改"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TEGMOXCD-1653121073037)(https://gitee.com/key2136/typora/raw/master/img/image-20220513223832566.png)]

这里是ID、版本、命令、创建的时间、状态、端口号映射、名字

接下来就可以用Navicat等工具去测试连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEy2ddj1-1653121073038)(https://gitee.com/key2136/typora/raw/master/img/image-20220513224931261.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-arHnlpKW-1653121073040)(https://gitee.com/key2136/typora/raw/master/img/image-20220513225029090.png)]

linux的3306对应docker容器的3306,name也是mysql

# 进入已启动的容器 这里用name:mysql或者id:c34(前3位就行,能锁定唯一id就行)
docker exec -it mysql bin/bash
# 退出进入的容器
exit;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-squWKQDN-1653121073041)(https://gitee.com/key2136/typora/raw/master/img/image-20220513225646193.png)]

mysql容器,查看目录,我们知道docker容器相当与一个小的linux系统

# 因为有目录映射,所以我们可以直接在镜像外执行(挂载)
vi /mydata/mysql/conf/my.conf 

#以下是配置文件,直接粘贴过去
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

# 重启
docker restart mysql

i:编辑 Esc + :wq:保存 退出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CoPMFAxP-1653121073043)(https://gitee.com/key2136/typora/raw/master/img/image-20220514105118811.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ipAv8Nz9-1653121073044)(https://gitee.com/key2136/typora/raw/master/img/image-20220514105343977.png)]

注意我的是my.conf , 本质都一样,但名字不同

安装redis-docker

如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。

# 在虚拟机中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

# 这样写默认下载最新
docker pull redis

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

# 直接进去redis客户端。检查是否成功
docker exec -it redis redis-cli
# 退出来
exit

默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli

vim /mydata/redis/conf/redis.conf
# 插入下面内容
appendonly yes

docker restart redis

设置redis容器在docker启动的时候启动

docker update redis --restart=always

在RedisDesktopManager上测试连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BQAmnmR7-1653121073045)(https://gitee.com/key2136/typora/raw/master/img/image-20220514111955088.png)]

官方的配置的介绍:https://raw.githubusercontent.com/redis/redis/6.2/redis.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCRFG7sZ-1653121073047)(https://gitee.com/key2136/typora/raw/master/img/image-20220514113105225.png)]

安装nginx docker

docker pull nginx:1.10
# 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
docker run -p 80:80 --name nginx -d nginx:1.10

# 把nginx里的东西复制出来
cd /mydata/nginx
docker container cp nginx:/etc/nginx .
然后在外部 /mydata/nginx/nginx 有了一堆文件
mv /mydata/nginx/nginx /mydata/nginx/conf
# 停掉nginx
docker stop nginx
docker rm nginx

# 创建新的nginx,使用刚才复制出来的配置文件
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

# 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

docker update nginx --restart=always

测试

cd /mydata/nginx/html/
vim index.html
随便写写
测试 http://192.168.56.10:80

先记录到这

结语

立足当下,展望未来。

相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1147 4
|
2月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
157 5
|
2月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
819 8
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
505 5
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
534 4
|
4月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
280 0
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
803 152
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。