Docker 容器构建
- 使用Dockerfile构建镜像
- 使用官方提供的Docker镜像
所谓Dockerfile
Dockerfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。
不过这里只介绍Dockerfile构建容器的步骤,接下来的文章都是以第二种方式, 使用官方提供的Docker镜像来部署。
下载MySQL官方提供的Docker镜像
$ docker pull mysql:tag
:tag 是你想从官方拉取的版本(例如5.5, 5.6, 5.7 或者latest )。如果省略 tag 则拉取当前最新的版本, 即latest。
可以使用以下的命令列出下载Docker镜像:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 dd0afb9bc4a9 3 days ago 408MB
mysql latest dd0afb9bc4a9 3 days ago 408MB
启动MySQL服务器
$ docker run --name=mysql -e MYSQL_ROOT_PASSWORD=root -v /app/mysql:/var/lib/mysql -d mysql
--name=mysql
这个属性是为启动的MySQL容器设置一个别名
-d
以守护进程方式运行 (后台运行)
-e MYSQL_ROOT_PASSWORD
在启动MySQL的时候设置密码,这里密码以root演示
-v /app/mysql/:/var/lib/mysql
通过Volume把容器内的文件映射到物理机
查看MySQL的日志
$ docker logs mysql
连接MySQL服务器
$ docker exec -it mysql mysql -u root -p
提示输入密码的时候,输入刚刚创建的时候指定的密码就ok了。现在你就能随意使用的MySQL服务器咯。
修改 MySQL密码:$ ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
容器管理
$ docker restart mysql
$ docker stop mysql
$ docker start mysql
$ docker rm mysql
注意,当你想要使用docker rm mysql
之前,请记得先停止容器(docker stop mysql)的运行。