实现一个自定义的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 .
运行容器
docker run -p 主机端口:容器端口 -d image:tag
实现一个自定义的数据库容器服务
选择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