(1) 实现一个自定义的web容器服务
- 获取 nginx 镜像
-
查看镜像情况
-
运行 nginx 容器,并查看容器的工作目录
-
修改 nginx 的 web 存放目录
-
编辑 dockerfile
-
构建镜像
-
创建容器验证结果
(2) 实现一个自定义的数据库容器服务
-
pull mysql 5.7
-
为了便于管理,创建 mysql 文件夹,包含以下文件
-
编写 Dockerfile
FROM mysql:5.7 #基础镜像 maintainer huaranmeng #维护者信息 ENV MYSQL_ALLOW_EMPTY_PASSWORD no #不允许空密码登录 ENV MYSQL_ROOT_PASSWORD=123456 #root密码 COPY setup.sh /mysql/setup.sh COPY schema.sql /mysql/schema.sql COPY privileges.sql /mysql/privileges.sql #所需文件 CMD ["sh", "/mysql/setup.sh"] #启动命令
-
编写容器启动脚本 setup.sh
#查看mysql服务的状态,方便调试,这条语句可以删除 echo `service mysql status` echo '1.启动mysql....' #启动mysql service mysql start sleep 3 echo `service mysql status` echo '2.开始导入数据....' #导入数据 mysql < /mysql/schema.sql echo '3.导入数据完毕....' sleep 3 echo `service mysql status` #重新设置mysql密码 echo '4.开始修改密码....' mysql < /mysql/privileges.sql echo '5.修改密码完毕....' #sleep 3 echo `service mysql status`
-
需要导入数据的 mysql 脚本命令 schema.sql
-- 创建数据库 create database `docker_mysql` default character set utf8 collate utf8_general_ci; use docker_mysql; -- 建表 DROP TABLE IF EXISTS test; CREATE TABLE test ( `id` bigint(20) NOT NULL, `name` varchar(255) DEFAULT "" ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- 插入数据 INSERT INTO test (`id`, `name`) VALUES (33999,'hrm');
-
mysql 权限设置命令 privileges.sql
use mysql; select host, user from user; -- 因为mysql版本是5.7,因此新建用户为如下命令: create user docker identified by '123456'; -- 将docker_mysql数据库的权限授权给创建的docker用户,密码为123456: grant all on docker_mysql.* to docker@'%' identified by '123456' with grant option; -- 这一条命令一定要有: flush privileges;
-
-
创建镜像
-
运行容器
-
查看容器
-
进入容器,并使用 docker 用户登录数据库
docker exec -it [容器id] /bin/bash
-
切换到 docker_mysql 数据库
-
查看 test 表中的数据
-
退出,使用 root 登录
-
查看数据库