第2次实践作业

上一次作业同学们实现了docker环境的安装和基本配置,已经能够从docker的官方镜像仓库中拉取镜像,初步实现了入门。然而,从官方仓库拉取的镜像是最简单的镜像,在实际应用中经常需要根据需求额外修改镜像,这就涉及到了镜像的定制。在docker中我们可以使用Dockerfile文件实现自定义镜像,本次作业需要完成2个Dockerfile编写实践,掌握编写Dockerfile文件的基本方法。

实现一个自定义的web容器服务

推荐apachenginx,要求标明镜像作者信息,安装必要的工具以方便维护;设定你自己的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


在浏览器中查看


实现一个自定义的数据库容器服务

可选择MysqlMariadb等,要求标明镜像作者信息,为了方便维护,需要能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的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

原文地址:https://www.cnblogs.com/linguoqin/p/12725083.html