第2次实践作业

(1)实现一个自定义的web容器服务(nginx)

①拉取nginx镜像

②在用户目录下创建Dockerfile目录,目录内用来存放Dockerfile及要用到的文件

③通过命令docker run --name nginxtest -d nginx启动一个名为nginxtest的容器

④将容器内的default.conf文件(nginx配置文件)拷贝到宿主机的Dockerfile目录

⑤修改该配置文件的监听端口为12345,并将web存放目录修改为my-html

⑥编辑Dockerfile配置文件

⑦构建自定义镜像

⑧启动容器并进入镜像

⑨查看网页

(2)实现一个自定义的数据库容器服务)(MySQL)

①拉取mysql5.7镜像

②在用户目录下新建mysqlDockerfile目录,并创建如下四个文件

  • Dockerfile:用来构建自定义镜像
  • setup.sh:用来初始化sql,并导入sql配置语句
  • priviliges.sql:用来新建数据库用户及分配表的权限
  • schema.sql:用来新建数据库,新建表并插入数据

③四个文件的配置及说明如下:

  • Dockerfile
FROM mysql:5.7

#不允许空密码登录
ENV MYSQL_ALLOW_EMPTY_PASSWORD no

#设置root密码
ENV MYSQL_ROOT_PASSWORD admin

#拷贝所需文件
COPY setup.sh /mysql/setup.sh
COPY schema.sql /mysql/schema.sql
COPY privileges.sql /mysql/privileges.sql

#设置容器启动时执行的命令
CMD ["sh","/mysql/setup.sh"]

#设置暴露端口
EXPOSE 3306
  • setup.sh
#!/bin/bash
set -e

#查看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`

#增加用户docker
mysql < /mysql/privileges.sql
echo '成功添加用户docker'

#sleep 3
echo `service mysql status`
echo `mysql容器启动完毕,且数据导入成功`

tail -f /dev/null
  • schema.sql
create database `S_C` default character set utf8 collate utf8_general_ci;

use S_C;

DROP TABLE IF EXISTS `S`;

CREATE TABLE `S`(
`Sno` varchar(255) NOT NULL,
`Sname` varchar(255) NOT NULL,
`Sex` varchar(5) NOT NULL,
CHECK(`Sex`='男' OR `Sex`='女'),
PRIMARY KEY(`Sno`)
);

INSERT INTO `S`(`Sno`,`Sname`,`Sex`) VALUES('031702626','杨世杰','男');
  • privileges.sql
use mysql;
select host, user from user;
create user docker identified by '123456';
-- 将S_C数据库的权限授权给创建的用户docker,密码为123456:
grant all on S_C.* to docker@'%' identified by '123456' with grant option;
-- 这一条命令一定要有:
flush privileges;

docker bulid -t mysql-dicky .构建自定义镜像

docker run --name mysql-dicky -p 8081:3306 -d mysql-dicky 运行容器

docker logs mysql-dicky查看运行日志

docker exec -it mysql-dicky bash进入容器并使用sql语句查看数据库及表内容

mysql -u docker -p以docker身份登录mysql并查看表格数据

posted @ 2020-04-24 16:35  Dicky99  阅读(149)  评论(0编辑  收藏  举报