飞道的博客

计算机专业大学生必备:Docker基础用法

293人阅读  评论(0)

大多数计算机专业的学生都需要学习数据库原理,不管是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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场