zoukankan      html  css  js  c++  java
  • 第2次实践作业

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

    1、获取最新版的nginx镜像

    sudo docker pull nginx:latest
    

    注:这里也可以先不pull镜像,直接在dockerfile中FROM(FROM会从本地或者镜像库中直接获取基础镜像)

    2、查看nginx镜像是否拉取成功

    sudo docker images
    

    3、启动nginx容器

    sudo docker run --name nginx-test -p 8080:80 -d nginx
    

    4、查看容器状态

    sudo docker ps
    

    5、进入nginx容器并查看其配置信息

    sudo docker exec -it b58bf6aae55c /bin/bash
    cd /etc/nginx/conf.d
    cat default.conf
    

    6、在主目录中创建myweb文件夹下创建并修改default.conf文件

    (1)创建default.conf文件

    (2)修改default.conf文件的监听端口和根目录

    将监听端口号listen改为8024(原为80)
    将Web默认目录root修改为/home/p4/myweb(原为/usr/share/nginx/html)

    7.在同一目录下创建dockerfile文件并编辑

    8.在同一目录下创建index.html文件并编辑

    要将default.conf 、dockerfile和index.html 三个文件放在同一目录下

    9.打开dockerfile文件并创建镜像ssnginx

    cd myweb
    sudo docker build -t ssnginx .
    

    其中,ssnginx是所要构建镜像的名称,.表示上下文,千万不能漏掉

    10.查看ssnginx是否创建成功

    sudo docker images
    

    11.启动ssnginx容器并映射端口

    sudo docker run --name ssnginx -p 8024:8024 -d ssnginx
    

    12.查看容器状态

    sudo docker ps
    

    13.访问浏览器http://localhost:8024

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

    1、从镜像库中pull一个mysql镜像,版本为5.7

    sudo docker pull mysql:5.7
    


    在pull时发现有点卡住,就把终端给关了,再一次执行命令时,发现镜像已存在

    2、查看镜像是否拉取成功

    sudo docker images
    

    3、在主目录下的mysql文件中创建构建mysql所需的文件

    (1)dockerfile

    (2)setup.sh

    (3)schema.sql


    需要测试,为了方便就只写了一个user表

    (4)privileges.sql

    4、创建镜像ssmysql

    要先进入mysql目录下

    cd mysql
    sudo docker build -t ssmysql .
    

    其中,ssmysql是所要构建镜像的名称,.表示上下文,千万不能漏掉

    5、查看镜像是否拉取成功

    sudo docker images
    

    6、启动ssmysql容器并将端口映射到本地的3306端口

    sudo docker run --name ssmysql -p 3306:3306 -d ssmysql
    

    7、查看容器状态

    sudo docker ps -a
    

    8、查看日志记录

    sudo docker logs ssmysql
    

    9、验证结果

    (1)执行exec命令进入ssmysql容器

    sudo docker exec -it ssmysql /bin/bash
    

    (2)使用css用户登录数据库

    mysql -u css -p
    

    输入密码888通过验证

    (3)查看数据库

    show databases;
    

    (4)切换至docker_mysql数据库

    use docker_mysql
    

    (5)查询user表并退出mysql

    select * from user;
    

    (6)查看ssmysql容器配置

    sudo docker inspect ssmysql
    


    只截取了部分

    三、遇到的问题及解决办法

    1、拉取nginx镜像太慢


    一直卡在这里,等了一个多小时,然后我放弃了
    解决办法:采用阿里云镜像加速器

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://tcldyxeu.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    然后再进行镜像拉取几秒钟就解决了,实在是太快了!

    2、自定义mysql镜像构建成功后却无法进入

    解决方法:
    使用如下命令发现错误

    sudo docker logs ssmysql
    


    原来是文件中的符号错误!!!这告诉我,一定要细心!!!
    修改后,先删除镜像所对应的容器,再删除镜像


    删除成功后,再重新创建镜像即可。

    四、实验总结

    通过本次实验,感悟最深的是做任何事情一定要细心!!细节决定成败!这次实践学会了自定义web容器服务和自定义数据库容器服务,对docker有了更加深入的了解。

  • 相关阅读:
    关于程序与语言
    最新笔记请查看
    MySQL 性能优化
    k8s flannel无法跨主机ping通pod的解决方案
    k8s 使用kubeadm部署k8s集群初体验
    MySQL 锁和可重复读的隔离级别结合起来的一个示例(来自MySQL45讲第8章)
    MySQL 可重复读 vs 读提交
    Jenkins配置Linux节点,通过ssh方式在Linux节点自动拉取github代码并执行
    AppScan 使用
    Linux 动态链接库和静态库示例
  • 原文地址:https://www.cnblogs.com/ss333/p/12763989.html
Copyright © 2011-2022 走看看