上一次作业同学们实现了docker环境的安装和基本配置,已经能够从docker的官方镜像仓库中拉取镜像,初步实现了入门。然而,从官方仓库拉取的镜像是最简单的镜像,在实际应用中经常需要根据需求额外修改镜像,这就涉及到了镜像的定制。在docker中我们可以使用Dockerfile文件实现自定义镜像,本次作业需要完成2个Dockerfile编写实践,掌握编写Dockerfile文件的基本方法。
实现一个自定义的web容器服务
推荐apache或nginx,要求标明镜像作者信息,安装必要的工具以方便维护;设定你自己的web存放目录,安全起见,请将默认的监听端口80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录。
使用nginx,标明镜像作者信息,设定自己的web存放目录,请将默认的监听端口80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录
1.拉取nginx镜像
sudo docker pull nginx:latest
2.创建容器并获取配置文件
sudo docker run --name=my_nginx1 -p 8080:80 -d nginx
sudo docker exec -it [容器id] /bin/bash
cat /etc/nginx/conf.d/default.conf
3.创建并修改配置文件
获取超级用户权限的资源管理器
sudo nautilus
复制文件到宿主目录(下面改路径了,中间出了点小问题,后来发现打错字母了)
sudo docker cp <容器ID>:/etc/nginx/conf.d/default.conf <宿主机路径(.表示当前目录)>
default.conf:修改端口为1234并将root改为web存放目录
Dockerfile
index.html
3.构建自己的nginx
sudo docker build -t my_nginx .
用该镜像构建一个容器
sudo docker run --name my_nginx2 -p 4040:1234 -d my_nginx
在浏览器中查看
实现一个自定义的数据库容器服务
可选择Mysql,Mariadb等,要求标明镜像作者信息,为了方便维护,需要能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的root密码且不允许空密码登录,创建一个测试数据库,指定用户名和密码。
1.拉取mysql镜像
sudo docker pull mysql:5.7
2.创建mysql镜像所需文件
Dockerfile
setup.sh
schema.sql
privileges.sql
3.构建自己的mysql镜像
sudo docker build -t mysql .
4.使用该镜像创建运行一个容器
sudo docker run --name lgqsql -p 1234:1234 -d mysql
5.进入数据库
sudo docker exec -it lgqsql /bin/bash
mysql -u ljy -p
6.运行情况
7.查看容器内配置信息
sudo docker inspect lgqsql