第2次实践作业 实现一个自定义的web容器服务 实现一个自定义的数据库容器服务

选择nginx,标明镜像作者信息,安装必要的工具以方便维护;设定自己的web存放目录,安全起见,将默认的监听端口80更改为自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录。

编写Dockerfile文件

  • Dockerfile文件
FROM nginx

# maintainer作者字段
LABEL maintainer="shenkay"

# nginx配置文件
COPY default.conf /etc/nginx/conf.d/default.conf
# web文件
COPY static-html /usr/share/nginx/html

#暴露端口
EXPOSE 7777![](https://img2020.cnblogs.com/blog/1798217/202005/1798217-20200508193456550-847314388.png)

  • 目录
.
├── default.conf
├── Dockerfile
└── static-html
    └── index.html

修改nginx配置文件自定义监听端口

  • 配置文件
server {
	#原端口
    # listen       80;
    # 自定义端口
    listen 7777;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

web 文件

  • index.html
<html>
	<h1>Welcome to Nginx</h1>
</html>

构建镜像

docker build -t image:tag .

第2次实践作业
实现一个自定义的web容器服务
实现一个自定义的数据库容器服务

运行容器

docker run -p 主机端口:容器端口 -d image:tag

第2次实践作业
实现一个自定义的web容器服务
实现一个自定义的数据库容器服务

第2次实践作业
实现一个自定义的web容器服务
实现一个自定义的数据库容器服务

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

选择Mysql,标明镜像作者信息,为了方便维护,能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的root密码且不允许空密码登录,创建一个测试数据库,指定用户名和密码。

编写Dockerfile

FROM mysql

# maintainer作者字段
LABEL maintainer="shenkay"

#设置root密码
ENV MYSQL_ROOT_PASSWORD 

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

#创建数据库
ENV MYSQL_DATABASE docker_mysql

#为docker_mysql创建新用户
ENV MYSQL_USER=docker
ENV MYSQL_PASSWORD=123456

构建镜像

docker build -t mysql:sss

运行容器

docker run -d mysql:sss