前言
上一次作业同学们实现了docker环境的安装和基本配置,已经能够从docker的官方镜像仓库中拉取镜像,初步实现了入门。然而,从官方仓库拉取的镜像是最简单的镜像,在实际应用中经常需要根据需求额外修改镜像,这就涉及到了镜像的定制。在docker中我们可以使用Dockerfile文件实现自定义镜像,本次作业需要完成2个Dockerfile编写实践,掌握编写Dockerfile文件的基本方法。
(1) 实现一个自定义的web容器服务
推荐apache或nginx,要求标明镜像作者信息,安装必要的工具以方便维护;设定你自己的web存放目录,安全起见,请将默认的监听端口80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录。
1.1、获取最新版的nginx镜像
- sudo docker pull nginx
我在第一步卡了好久,一开始出现docker无法启动,后来一直百度尝试解决,各种重启重装docker都不行。后来我把上次作业的阿里云加速器的一个文件:/etc/docker/daemon.json删掉,终于可以了。然后出现了新的问题,等了好久都没下载完,卡住不动了。我又重新安装阿里云镜像加速器,然后大功告成。
- /安装阿里云镜像加速器/
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
EOF
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
————————————————
版权声明:本文为CSDN博主「julien71」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/julien71/java/article/details/79760919
1.2、查看nginx镜像是否拉取成功
- sudo docker images
1.3、启动nginx容器
- sudo docker run --name nginx-test -p 8080:80 -d nginx
1.4、查看容器状态
- sudo docker ps
1.5、进入nginx容器并查看其配置信息
- sudo docker exec -it 059c2a1d8994 /bin/bash
cd /etc/nginx/conf.d
cat default.conf
1.6、在主目录中创建myweb文件夹下创建并修改default.conf文件
创建并修改default.conf文件的监听端口和根目录
将监听端口号listen改为1234
将Web默认目录root修改为/home/zhanghui/myweb
1.7.在同一目录下创建dockerfile文件并编辑
1.8.在同一目录下创建index.html文件并编辑
1.9.打开dockerfile文件并创建镜像
- sudo docker build -t zhanghui_nginx .
1.10.查看ssnginx是否创建成功
- sudo docker images
1.11.启动ssnginx容器并映射端口
- sudo docker run --name zhanghui_nginx -p 1234:1234 -d zhanghui_nginx
12.访问浏览器http://localhost:1234
(2) 实现一个自定义的数据库容器服务
可选择Mysql,Mariadb等,要求标明镜像作者信息,为了方便维护,需要能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的root密码且不允许空密码登录,创建一个测试数据库,指定用户名和密码。
2.1、从镜像库中pull一个mysql镜像,版本为5.7
- sudo docker pull mysql:5.7
2.2、在主目录下的mysql文件中创建构建mysql所需的文件
(1)dockerfile
(2)setup.sh
(3)schema.sql
(4)privileges.sql
2.3、创建镜像zh_mysql
- sudo docker build -t zh_mysql .
2.4、查看镜像
- sudo docker images
、
2.5、运行容器
- sudo docker run --name zhmysql -p 3306:3306 -d zh_mysql
2.6、查看容器状态
- sudo docker ps -a
2.7、查看日志记录
- sudo docker logs zhmysql
2.8、验证结果
(1)执行exec命令进入lxtmysql容器
- sudo docker exec -it lxtmysql /bin/bash
(2)使用docker用户登录数据库
- mysql -u docker -p
输入密码通过验证 密码:123456
(3)切换至docker_mysql数据库
- use docker_mysql
(4)查询user表并退出mysql
- show tables;