实验报告
目录
一、 课堂练习
docker info
二、 课后作业
4. 进入MySQL容器中看是否有vi的命令,并且解释原因
5. 排查容器的练习
用busybox启动一个容器,验证nginx的容器正常工作
一、 课堂练习
代码:
docker run -it --name mysqlsrv1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
运行截图:
代码:
docker exec -it mysqlsrv1 bash
mysql -uroot -p123456
show databases;
运行截图:
代码:
docker version
运行截图:
代码:
docker info
运行截图:
代码:
docker run hello-world
运行截图:
代码:
docker run -d -p 80:80 --name webserver nginx
运行截图:
代码:
docker run -it busybox sh
运行截图:
代码:
docker run busybox iplink show eth0
运行截图:
代码:
docker ps
运行截图:
代码:
docker exec -it webserver bash
docker exec -it 83c1fad37f8f bash
运行截图:
代码:
docker inspect <containerId>
运行截图:
代码:
docker logs <containerid>
运行截图:
二、 课后作业
题目:
1. 启动一个busybox容器,把本机的 /mydata目录映射到容器里的/userdata 目录,进入容器,查看目录,编辑文件,在看主机上的文件变化情况
过程:
1、启动一个busybox容器
2、创建文件夹
3、映射
4、查看目录,并在userdata中新建一个文件夹
5、查看主机文件,发现mydata中的内容改变
题目:
2. 创建一个MySQL容器,放在后台运行,开一个新的SHELL终端,查找容器对应的进程,尝试杀掉进程,看看容器是否退出,并解释原因
过程:
1、创建MySQL容器
2、查看端口号所对应的进程id并用kill杀死进程
3、查看容器,发现容器已经退出
解释:
杀死进程后容器没有设置重启则容器不重启,也就是退出。
题目:
3. 创建一个MySQL容器,放在后台运行,确保创建容器的时候 添加参数 --restart=always ,在宿主机上查找容器对应的进程,尝试杀掉进程,看看容器是否退出,并解释原因
过程:
1、创建MySQL容器
2、设置-–restart=always
3、查找进程
4、杀死进程后可以看到进程依旧存在
解释:
杀死进程后容器重启,所以容器实际上没有退出。
题目:
4. 进入MySQL容器中看是否有vi的命令,并且解释原因
过程:
1、进入容器
2、发现没有vi命令
解释:
如果容器本身无vi命令,则无法使用vi。
题目:
5. 排查容器的练习
用busybox启动一个容器,验证nginx的容器正常工作
docker exec命令行方式进入nginx容器,获取nginx容器的IP地址(ip a)
Busybox启动一个容器,并且ping nginx容器的IP,确认可以网络互通
在busybox容器里用下列命令(bin目录下)行排查nginx容器是否正常:
1 wget http://<nginxip>:80
2 curl http://<nginxip>:80
3 telnet <nginxip> 80 或者8080,对比效果
过程:
1、启用busybox
2、进入nginx容器,获取ip地址
3、ping ip
4、wget http://<nginxip>:80
5、curl http://<nginxip>:80
6、telnet <nginxip> 80 或者8080,对比效果,可以看到对于80可以连接,对于8080无法连接。