2020系统综合实践 第2次实践作业
1.实现一个自定义的web容器服务
获取nginx镜像
sudo docker pull nginx
查看镜像情况
sudo docker images
启动nginx容器
sudo docker run --name nginx-test -p 8080:80 -d nginx
Sudo docker ps
通过浏览器访问8080端口查看
进入nginx容器并复制其配置信息:
sudo docker exec -it 9fa0577f4261 /bin/bash
cd /etc/nginx/conf.d
cat default.conf
在/usr/share/nginx路径下创建mydir文件夹,并在该文件下创建文件default.conf,其中监听端口自选,根目录就是放配置文件的地方
在同一目录下创建dockerfile文件
#基础镜像
FROM nginx
#维护人信息
MAINTAINER dyssl
#添加文件
COPY default.conf /etc/nginx/conf.d/
COPY index.html /usr/share/nginx/mydir/
#暴露端口
EXPOSE 5416
在同一目录下创建index.html文件
结构大概是这样
在配置文件存放的目录下构建镜像(注意不要漏掉点哦)
cd /usr/share/nginx/mydir
sudo docker build -t zyh3nginx .
启动容器并映射窗口
sudo docker run --name zyh3nginx -d -p 5416:5416 zyh3nginx
最后就可以通过浏览器来访问啦
2.实现一个自定义的数据库容器服务
从镜像库中获取mysql:5.7镜像
sudo docker pull mysql:5.7
验证查看是否pull成功
sudo docker images
在~/路径下创建mysql文件夹,并在该文件下创建文件dockerfile文件
#基础镜像
FROM mysql:5.7
#镜像作者
MAINTAINER DysSl
#设置不允许免密登录并设置root密码
ENV MYSQL_ALLOW_EMPTY_PASSWORD no
ENV MYSQL_ROOT_PASSWORD=106741
#将配置文件放到容器中
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
在同一目录下创建脚本命令schema.sql
在同一目录下创建权限设置命令privileges.sql
在配置文件存放的目录下构建镜像
docker build -t zyh2mysql .
启动容器并映射窗口
docker run --name zyh2mysql -d -p 2424:2424 zyh2mysql
进入容器
sudo docker exec -it zyh2mysql /bin/bash
登录数据库
mysql -u docker -p
切换至docker_mysql数据库
use docker_mysql
查看Student表中的数据
select * from Student;
查看容器的配置信息
sudo docker inspect 3fccf6f5b712
3.遇到的问题
当时做web容器服务的时候,访问自己的端口报错403
找了非常久内鬼是谁,最后查了一下日志文件发现是权限的问题
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
sudo docker exec -it 070e18bc500b /bin/bash
chmod -R 777 /usr/share/nginx/mydir
最后感谢那么多给我帮助的人