我是基于阿里云Linux内核CensOS8进行测试记录的。文章内容概况:
在Linux安装docker,之后在docker上拉取镜像(以MySQL为例),运行MySQL后在本地使用Navicat连接远程数据库。
Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版。本教程基于CentOS8安装Docker CE。
查看CentOS版本信息
lsb_release -a
在 CentOS 8安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
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就安装成功了。
# 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 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
请确保Docker容器是启动的。【拉取镜像标准步骤请移步:#】
在docker容器里面进行代码运行,可以使得我们极大的简化开发事物。下面以 拉取、启动、连接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;
阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则。所以我们需要手动在安全组中添加规则,具体操作步骤如下:
登录阿里云服务器并进入控制台,点击【云服务器ECS】-> 【配置安全组规则】
点击【配置规则】
点击【手动添加】
好了,此时服务器3306端口已经能够被外网访问到了,下面就开始连接~
打开本地的Navicat或其他数据库连接器:
打开数据库一看,只有一个数据库可以访问
而且也不能执行创建数据库等操作,这是因为此账户没有权限的原因。
MySQL用户权限
# 1.授权,把test库开放给pdh
grant select,insert,update,delete,create on test.* to 'pdh';
# 2.刷新权限
flush privileges;
执行完上面的指令后,重新使用账户 pdh 连接,就会多出一个test库供使用。
查询获取镜像的常见方式如下:
# 1.search redis
docker search redis
# 2.pull redis:latest
docker pull redis:latest
下面就拉取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】
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/yeahPeng11/article/details/121512758
内容来源于网络,如有侵权,请联系作者删除!