大多数计算机专业的学生都需要学习数据库原理,不管是MySQL、Oracle还是SQL Server,都需要大量的安装时间,甚至可能会安装失败。如果你想要学习不同版本的数据库有什么区别,那几乎做不到。
很多情况下,这些技能并不需要你去掌握,也就是我们常说的边际效用很低。除了数据库软件以外,在Web项目中,你可能会需要其他的应用服务,如Redis,FTP服务等。通常来说,一个个的去下载安装不仅费时费力,而且还很难复用环境。这也是我第一个要教你的东西。
学习 Docker 的基础功能
Docker是什么,简单来说它和虚拟机很类似,但是原理不同。不同于VMware,Docker占用的资源、运行的效率等方面都要低很多。那我们可以用它做什么呢?我们可以用它来部署一些服务,如MySQL。
在使用Docker之前,我们要先安装它,可以在https://www.docker.com/products/docker-desktop来下来一个Docker包,随后将其安装、启动。
在命令行中输入docker info
,出现信息代表安装成功。
用docker安装一个mysql
首先我们打开命令行,Windows系统是CMD,Mac系统是Terminal。
在命令行输入docker pull mysql
来下载mysql,如下图,如果你想要指定版本(tag),可以输入docker pull mysql:8
,具体的版本号参见https://hub.docker.com/_/mysql,不写默认就是latest
随后执行docker image ls -a
查看所有的镜像,可以看到mysql:latest
接下来我们要启动mysql
,也就是创建一个容器,使用方法如下。容器由镜像发展而来,一个镜像可以创建多个容器,通过这个特性,可以很轻松的模拟出分布式系统。
docker run --name mysql_latest -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --restart=always mysql
# 命令行模板,解析:创建名为<container-name>的mysql容器,mysql的root密码是<root-password>,并将容器内部3306端口映射到本机的3306端口,同时在后台运行
# docker run --name <container-name> -p <local-port>:<container-port> -e MYSQL_ROOT_PASSWORD=<root-password> -d mysql:<tag>
# 参数解析:
# <container-name> 这个容器的名字
# <local-port> 本机的端口号
# <container-port> 容器的端口号
# <root-password> mysql root账号对应的密码
# <tag> 指定的版本,不写默认为`latest`
# --name 容器名
# -d 容器在后台运行
# --restart=always 容器永远会随着docker启动而启动
# 更多参数见:https://hub.docker.com/_/mysql
到目前为止,你就已经创建好一个mysql服务了。接下来尝试连接一下,在这里使用Navicat来连接。
如果想要通过命令行连接,可以输入docker exec -it mysql_latest bash
来进入容器内部的命令行,到这一步不代表你进入了mysql服务,目前的是在容器内部的linux内,可以输入uname -a
来查看,当前的身份可以输入whoami
命令来查看。
要进入mysql内部,还需要输入mysql -u root -p
来进入mysql内部的命令行,具体过程如下:
至此,你可以在命令行中使用mysql。如果你不想要这个容器了,可以输入docker stop mysql_latest
来停止容器,随后输入docker rm mysql_latest
来删除容器。
小结
可以发现通过docker来创建mysql非常方便,几乎不会出错,而且你可以随意增加或删除容器。除了mysql之外,你可以安装几乎所有你想得到的服务,如oracle, sql server, mongoDB, redis等。在学习的过程中,你可以不指定--restart=always
来确保服务不会自动开启,这样会降低系统资源的占用,而这一点在物理机上处理起来就会麻烦些。
除了数据库服务外,也可以安装一些常见的服务,如Wordpress。在过去,如果要安装Wordpress,你需要安装一堆依赖,包括特定版本以上的PHP,特定数据库,随后创建账号等一系列复杂操作。而在docker中,只需要一行docker pull wordpress
来下载,一行docker run --name some-wordpress --network some-network -d wordpress
来启动服务就完成了,一些基础的配置就是通过命令行来完成的。
你可以下载一个Nextcloud
来构造属于你自己的网盘,也可以下载一个FTP
服务来在不同的服务器上传输数据,或者是构造一个搜索引擎ElasticSearch
,甚至是虚拟一个操作系统如ubuntu/centos,构建这些都非常简单。
你甚至可以使用它的高级用法docker-compose
,可以帮助你构建复杂的应用。你也可以将你的应用构建成一个镜像,来帮助你快速部署到云服务器上,而不需要安装任何响应的环境,除了Docker本身。
转载:https://blog.csdn.net/timczm/article/details/114834462