阿里云服务器中Docker安装与镜像使用【MySQL、redis快速访问】

x33g5p2x  于2021-11-24 转载在 Docker  
字(3.6k)|赞(0)|评价(0)|浏览(763)

我是基于阿里云Linux内核CensOS8进行测试记录的。文章内容概况:

在Linux安装docker,之后在docker上拉取镜像(以MySQL为例),运行MySQL后在本地使用Navicat连接远程数据库。

一、Linux安装Docker

Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版。本教程基于CentOS8安装Docker CE。

1.CentOS

查看CentOS版本信息

lsb_release -a

在 CentOS 8安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看

uname -r

2.Docker安装

docker分为社区版和企业版,个人学习使用社区版即可。去到docker官方网站,找到开发者手册【https://docs.docker.com/get-started/overview/】。

照着官方教程开始操作:
sudo 的意思是使用超级用户。某些指令只是超级用户才有权执行。阿里云购买的服务器都会装好yum工具包,如果没有请务必安装yum工具包!

# 1.Uninstall old versions
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2.Set up the repository
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 3.Install Docker Engine (docker-ce,docker-ce-cli and containerd.io) 一直点击y
sudo yum install docker-ce docker-ce-cli containerd.io

到这里,docker就安装成功了。

二、启动Docker

# 1.Start Docker
sudo systemctl start docker

# 2.查看docker版本
dokcer version

测试Docker运行镜像服务

# 1.hell-docker
docker run hello-world

查看镜像

# 1.View the Docker image
sudo docker images

# 2.Set to enable self-start
sudo systemctl enable docker

三、配置Docker镜像加速

当所有的Docker依赖包都从 Docker hub 上下载时,网络肯定是一个不可避免的问题,而使用阿里云的docker镜像就解决这个问题。

点击去阿里云官网,找到 容器镜像服务 【很多的阿里云服务这里都有,如 网关、ECS、CDN 等等入口】。每个人的镜像加速地址可能不一样,使用自己的进行加速地址才是最有效的

之后找到 镜像工具-》镜像加速器,选择对应的操作系统,执行对应的命令【我的是CentOS 8.4】。以下指令正常执行无报错即拥有了阿里云docker镜像。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

四、拉取与连接(MySQL)

请确保Docker容器是启动的。【拉取镜像标准步骤请移步:#】

在docker容器里面进行代码运行,可以使得我们极大的简化开发事物。下面以 拉取、启动、连接MySQL为例,从而熟悉所有的容器的使用

1.MySQL准备

Dokcer拉取和启动MySQL
需要实现文件挂载功能移步:【点击我查看MySQL文件挂载具体指令】

# 1.Install mysql 5.7
docker pull mysql:5.7

# 2.Start mysql 5.7
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

对于上面 启动MySQL容器 的解释:

# 将容器内部 3306 端口映射到 主机的 3306 端口,即通过 主机的 3306 可以访问容器的 3306 端口
-p 3306:3306
# 容器名为 mysql
--name mysql
# 设置登陆密码为 123456,登陆用户为 root
-e MYSQL_ROOT_PASSWORD=12345
# 编写配置中的密码
-e MYSQL_ROOT_PASSWORD=123456
# 以后台方式运行
-d

进入MySQL容器镜像

# 1.进入MySQL容器镜像
docker exec —it 容器id bash

# 2.进入mysql命令行
mysql -u root -p
# enter password
# 修改服务器数据后,本地navicat更新同步可查看

对与 容器id 这一项,需要使用以下指令查看:

docker ps

MySQL创建新用户(密码:123456)>(不建议使用root用户开启远程连接)

# 1.创建新用户
create user 'pdh'@'%' identified by '123456';

如果创建的用户曾经存在过,得执行如下指令:

# 1.删除之前的用户信息
drop user 'user'@'%';
# 2.刷新权限
flush privileges

改端口和权限,查看用户信息

# 1.修改密码和权限
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'ip' IDENTIFIED BY '密码' WITH GRANT OPTION;

# 2.查看host和user (mysql库下)
select host,user,authentication_string from user;

2.阿里云配置端口

阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则。所以我们需要手动在安全组中添加规则,具体操作步骤如下:
登录阿里云服务器并进入控制台,点击【云服务器ECS】-> 【配置安全组规则】

点击【配置规则】

点击【手动添加】

好了,此时服务器3306端口已经能够被外网访问到了,下面就开始连接~

3.Navicat连接

打开本地的Navicat或其他数据库连接器:

打开数据库一看,只有一个数据库可以访问

而且也不能执行创建数据库等操作,这是因为此账户没有权限的原因。

MySQL用户权限

# 1.授权,把test库开放给pdh
grant select,insert,update,delete,create on test.* to 'pdh';

# 2.刷新权限
flush privileges;

执行完上面的指令后,重新使用账户 pdh 连接,就会多出一个test库供使用。

五、Others拉取

查询获取镜像的常见方式如下:

# 1.search redis
docker search redis

# 2.pull redis:latest
docker pull redis:latest

下面就拉取redis,在进行简单连接操作。

1.redis

# 1.pull redis
docker pull redis:latest

# 2.创建配置文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

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

# 4.redis-cli连接redis
docker exec -it redis1 redis-cli

把6379端口在阿里云安全配置组配置以后,就可以在本地连接此redis了!

添加redis持久化:

在文件 redis.conf 中添加:

appendonly yes

保存退出,这就开启了redis的持久化机制。或者直接在run的时候添加 --appendonly yes 也能实现持久化。

具体的redis中进行哪些配置【点击我去到redis配置查看:https://redis.io/topics/config

相关文章