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

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 六、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
相关文章
|
1天前
|
敏捷开发 API 持续交付
阿里云云效产品使用问题之流水线编译docker时,如何把已经定义好的token传入编译参数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
阿里云云效产品使用问题之流水线编译docker时,如何把已经定义好的token传入编译参数
|
1天前
|
持续交付 开发工具 git
阿里云云效产品使用问题之在云效代码域中gitlab使用docker安装的,迁移时遇到“获取企业信息失败”,是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1天前
|
前端开发 测试技术 API
阿里云云效产品使用问题之在流水线的构建任务中,如何安装并运行Jest
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
阿里云云效产品使用问题之在流水线的构建任务中,如何安装并运行Jest
|
1天前
|
JavaScript 前端开发 数据安全/隐私保护
阿里云云效操作报错合集之流水线中获取不到CI_COMMIT_REF_NAME变量,导致docker镜像打包失败,什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1天前
|
缓存 运维 Devops
阿里云云效操作报错合集之在构建过程中,Docker尝试从缓存中获取某个文件(或计算缓存键)时遇到了问题,该如何处理
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1天前
|
Rust Shell 索引
使用阿里云镜像加速Rust与Cargo安装及更新
使用阿里云镜像加速Rust与Cargo安装及更新
8 0
|
2天前
|
应用服务中间件 nginx Docker
Docker安装与管理Nginx
Docker安装与管理Nginx
21 0
|
2天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
39 0
|
弹性计算 NoSQL MongoDB
阿里云使用Docker
阿里云使用Docker部署MongoDB集群体验
阿里云使用Docker
|
10天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配

热门文章

最新文章