Docker Dockerfile Mysql
先理解下概念
dockerfile用途是用于执行build生成镜像分支, 在依据这个镜像分支去运行多个镜像
下面以mysql举例
1. 拉取mysql镜像
docker pull mysql
2. 查看mysql
docker images |grep mysql
3.查看本地镜像: (参数-a 表示所有)
docker images -a - 先创建一个Dockerfile文件
FROM mysql
EXPOSE 3306
ENV MYSQL_ROOT_PASSWORD 12345- 执行build命令
# 注意最后一个.不能少, 这个表示当前路径
[root@localhost mysql]# docker build -t mysql2:Dockerfile .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM mysql
---> be0dbf01a0f3
Step 2/3 : EXPOSE 3306
---> Running in 8f2ae74e3aae
Removing intermediate container 8f2ae74e3aae
---> 2a6324549f86
Step 3/3 : ENV MYSQL_ROOT_PASSWORD 12345
---> Running in 1c61b6fd498b
Removing intermediate container 1c61b6fd498b
---> ec33c8026d5c
Successfully built ec33c8026d5c
Successfully tagged mysql2:Dockerfile- 查询当前镜像, 这个mysql2就是以我们的配置构建的镜像分支
[root@localhost mysql]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql2 Dockerfile ec33c8026d5c About a minute ago 541MB
mysql latest be0dbf01a0f3 3 weeks ago 541MB- 执行容器
docker run -p 3306:3306 --name my_mysql2 -e -d mysql2:Dockerfile --default-authentication-plugin=mysql_native_password
说明: --default-authentication-plugin=mysql_native_password
这个配置的添加是为了保证启动好的mysql能通过sqlyog访问, 使用使用兼容的加密方式这个方案并不好, 很傻, 主要是为了帮助理解dockerfile的简单的使用示例用途