六、Docker常用安装及推送至阿里云

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 六、Docker常用安装及推送至阿里云

Docker常用安装

7.1 总体步骤

搜索镜像->拉取镜像->查看镜像->启动镜像->停止容器->移除容器

docker search xxx` -> `docker pull xxx:TAG` -> `docker images xxx` -> `docker run [-itd -p port:port] [--name yyy] xxx:TAG` -> `docker stop 容器ID/yyy` -> `docker rm [-f] yyy

7.2 安装mysql

mysql5.7

docker pull mysql:5.7
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=10086 \
-d mysql:5.7

命令说明:

-p 12345:3306:将主机的3306端口映射到docker容器的3306端口。

--name mysql:运行服务名字

-v /mydata/mysql/conf:/etc/mysql :将主机/mydata/mysql/conf目录,挂载到容器的/etc/mysql目录

-v /mydata/mysql/data:/var/lib/mysql:将主机的/mydata/mysql/data目录,挂载到容器的/var/lib/mysql目录

-v /mydata/mysql/log:/var/log/mysql:将主机的/mydata/mysql/log目录,挂载到容器的/var/log/mysql目录

-e MYSQL_ROOT_PASSWORD=10086:初始化 root 用户的密码。

-d mysql:5.7 : 后台程序运行mysql5.7

使用windows上的sqlyog进行远程连接:

记得关闭宿主机防火墙或者开启3306端口

# 查看防火墙信息,看哪些端口可以访问
firewall-cmd --list-all
# 关闭防火墙
systemctl stop firewalld
# 或者开启3306端口访问(推荐)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
systemctl restart firewalld

使用docker对mysql容器中的数据进行备份

将docker mysql容器中的所有数据库导出到宿主机的/mydata/mysql8/all-databases.sql文件中

docker exec myql服务容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' > /mydata/mysql8/all-databases.sql
# 如果使用UTF-16编码 用--result-file= 替换>
docker exec myql服务容器ID sh -c ' exec mysqldump --all-databases -uroot -p"10086" ' --result-file=/mydata/mysql8/all-databases.sql

mysqldump是mysql自带的逻辑备份工具。命令格式:官网mysqldump

mysqldump [选项] 数据库名 [表名] > /路径/filename.sql
mysqldump [选项] --数据库名 [选项 表名] > /路径/filename.sql
mysqldump [选项] --all-databases [选项] > /路径/filename.sql

常用选项说明:

参数名 缩写 含义
--host -h 服务器IP地址
--port -P 服务器端口号
--user -u mysql用户名
--password -p mysql密码
--database 指定要备份的数据库
--all-databases 备份mysql上的所有数据库
--compact 压缩模式,产生更少的输出
--comments 添加注释信息

7.3 安装redis

docker pull redis
docker run -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf  -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

--appendonly yes 表示使用AOF进行持久化 (redis默认使用rdb进行持久化)

redis.conf是个文件夹,不是个文件 (小声BB:这个redis.conf文件夹是不是太容易引起歧义了?还有redis-server启动的时候,后面跟的那串不是指定的配置文件的路径吗,讲道理redis.conf应该就是个配置文件才对);

在主机/mydata/redis/conf/redis.conf目录下新建redis.conf文件

vim /mydata/redis/conf/redis.conf📎redis.conf.txt

测试redis-cli连接:docker exec -it redis容器ID redis-cli

测试生成持久化文件:

八、本地镜像发布到阿里云

8.1 镜像的生成方法

  • 前面讲过的DockerFile
  • 从容器创建一个新的镜像:docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]
  • OPTIONS选项说明:-a:提交的镜像作者、-m:提交时的说明文字

我们之前自己做了一个包含vim和ifconfig的centos——mycentos:0.1,现在我们把它更新到0.2,并生成一个0.2的镜像。

先看看mycentos:0.1有没有容器docker ps -a,没有就创建一个容器,docker run -itd mycentos:0.1

docker commit -a mrlinxi -m "new contos 0.2 from 0.1" 容器ID mycentos:0.2

这样就得到了mycentos:0.2的镜像

8.2 将本地镜像推送到阿里云

登陆阿里云,进入控制台

左上角菜单,点开搜索容器镜像服务:

实例列表—>个人/企业(要钱) 没有的需要创建一下,创建需要设置一个repository密码

然后创建一个镜像仓库

然后下一步,选择本地仓库创建:

创建好仓库后,会有相应的操作指南:

# 登陆仓库 首次登陆需要输入之前我们设置的仓库密码
docker login --username=阿里云账户 registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/mrlinxi/mycentos:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/mrlinxi/mycentos:[镜像版本号]

提交后,本地也会有一份提交的镜像。

我们尝试从阿里云拉取我们刚才push的镜像。

# 删除本地提交的镜像
docker rmi -f registry.cn-hangzhou.aliyuncs.com/mrlinxi/mycentos:0.2.1
dokcer pull registry.cn-hangzhou.aliyuncs.com/mrlinxi/mycentos:0.2.1


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
1
19
分享
相关文章
Docker Desktop 4.38 安装与配置全流程指南(Windows平台)
Docker Desktop 是容器化应用开发与部署的一体化工具,支持本地创建、管理和运行 Docker 容器。4.38 版本新增 GPU 加速、WSL 2 性能优化和 Kubernetes 1.28 集群管理功能,适用于微服务开发和 CI/CD 流水线搭建。安装要求为 Windows 10 2004 及以上(64 位),需启用 Hyper-V 或 WSL 2。硬件最低配置为 4GB 内存、20GB 存储和虚拟化技术支持的 CPU。安装步骤包括启用系统功能、下载并运行安装程序,完成后配置镜像加速并验证功能。常见问题涵盖 WSL 2 安装不完整、磁盘空间清理及容器外网访问等。
563 11
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
109 4
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
94 16
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
79 2
|
26天前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
75 20
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
328 15
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
165 42
安装docker-18.06报错Error: libseccomp conflicts with docker-18.06
通过这些步骤,您可以成功在CentOS上安装Docker 18.06,并解决libseccomp的冲突问题。这些方法确保系统兼容性,并保证Docker的正常运行。
66 27
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
184 25

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等