前言
这个系列是对我学习docker的一个总结,先从各种服务的搭建开始,直接带大家实战入门。其实docker本身是运维技能,后端同学只需要了解即可。我这个系列也不会对docker太过深入,点到为止。
由安装mysql开启这次学习。
拉取镜像
安装任何docker项目的第一步基本都是拉取镜像,镜像的信息可以在dockerhub中搜索到。例如本次所需的mysql:
命令为:
docker pull mysql
可以加上:版本号,不加默认latest,版本号和使用方式在dockerHub中可以找到。完整命令:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
命令解析
拉取结束后,可以输入
docker images
查看已经拉取的所有镜像
创建容器
其实在dockerHub中已经有使用该镜像的方法:
稍微修改下:
docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
这样我们就run了一个容器名字为:mymysql,
命令解析:
-p 端口1:端口2,端口2为容器中的端口,端口1为服务器对外端口,容器内mysql的默认端口为3306,所以端口2为3306(可以通过挂载配置文件来实现本地服务器和容器内同步,需要-v命令,在下一章安装niginx里细讲),然后我们希望暴露对外的端口是端口1,可以自己设置,我也设置为3306;
-e MYSQL_ROOT_PASSWORD=123,意思是给root账户初始化密码为123;
–name mymysql,给容器取一个名字:mymysql;
-d 后台运行。
修改时区
这里安装完有个问题,就是mysql的容器内部时间并不是东八区,所以数据库的时间就比我们小8小时。
docker cp /etc/localtime mymysql:/etc
这里用到docker的copy命令,将宿主的时间复制到容器里,这样时间就和宿主同步里。详细解析可以看docker官网,简单讲下:
docker cp 文件 容器名:目录位置,就是将宿主的文件放到容器里的目录下,前面的是原位置,后面为目标位置,同理换位就是把容器里的复制到宿主里。
如何直接进入容器mysql里
docker exec -it mymysql bash
这个是进入容器的命令,mymysql为容器名。
然后登陆mysql:
mysql -u root -p
接下来就是mysql的知识了。暂时不深入了。
连接mysql
通过navicat,用户名:root,密码:123,即可连接,注意这里的mysql是8。