开启ipv4
如果不开启后面会报错。云服务器不需要设置,部分centos需要设置,可以检测一下是否设置,如果没有则修改配置文件并添加 net.ipv4.ip_forward=1
vim /usr/lib/sysctl.d/80-system.conf
添加标红代码。一旦修改的与网络相关的东西,需要重启相关服务,重启依赖于网络的docker。
systemctl restart network
systemctl restart docker
启动容器
先输入docker --help
run Run a command in a new container 中文意思为:通过run命令创建一个新的容器(container)
如果一个容器有了,我们需要删除,才能执行。或者通过update命令更新相应配置文件。
开始运行mysql容器的命令
docker run: 运行命令,运行一个容器,每个容器都相互隔离,他都是独立运行环境,是一个完整的实例。
-p: 端口号
3306:3306:端口映射,左侧代表容器外的比如虚拟机中的端口号可以更改,右侧容器mysql默认的端口号。
补充:-p 3306:3306:把mysql容器自己的端口映射到虚拟主机,这样我们才能访问,这是端口映射(左侧是本地端口:右侧是docker容器里的端口)
--name mysql:为当前容器起的名字为mysql,名字随意
空格\:换行
-v 文件1:文件2:文件挂载,我们的左侧还是在我们的外部,把外部的这些内容做一个挂载,把内部挂载到外边(数据库文件,日志,配置文件)
-e MYSQL_ROOT_PASSWORD : environment,环境变量的参数,意思就是我们去设置了当前我们root用户的一个密码,我在这边设定为root。
-d: 是指的我们当前容器mysql是需要在后台去运行。版本号就是tag下的
--character-set-server=utf8mb4 --collation-server=utf8mb4 unicode ci:字符集,创建新的数据库都会加。
查看容器
本阶段只为了学习命令,出现以下错误以供学习。
查看docker中正在运行的容器,发现啥都没有,说明出了问题:
docker ps
查看已经挂掉的容器
docker ps -a
看下容器的日志
docker logs <container>
中文意思:无法创建'/etc/mysql/conf.d/'这样一个文件目录。跟文件挂载有关。将报错文件删除重新启动。
错误原因:docker run 是创建一个新的容器,因为mysql容器已经存在了,首先移除容器
docker rm myql,重新输入命令则可正确运行。
注意:要在容器外部创建挂载的文件,否则无法完成映射。
docker stop 将容器保留在docker ps -a列表中(如果您希望将其状态保存在新图像中,则可以提交该容器)。
它首先发送SIGTERM,然后在一段宽限期后发送SIGKILL。
docker rm将从docker ps -a
列表中删除容器,丢失其“状态”(写入映像文件系统顶部的分层文件系统)。它不能移除正在运行的容器(除非用-f
调用,在这种情况下,它直接发送SIGKILL )。
在生命周期方面,您应该先停止容器,然后再移除它。这给了container PID 1 to collect zombie processes一个机会。