docker学习笔记5【实战:将ctfweb题环境docker打包供他人使用】

置顶,一个很不错的wiki,点这里
历时三天,玩坏三个虚拟机,云服务器重置一次,终于算是docker入门了,回想起来其实还是linux的一些操作不太熟导致的各种报错,其实还是比较简单的,下面用实战从零来总结一下docker的用法:

1、vmvare安装ubuntu16.04虚拟机

略,教程很多,镜像推荐去官网下载,被不好的镜像坑过

2、更新ubuntu源为国内源

略,同上,百度攻略很多

3、安装docker

参考我的博客,docker学习笔记1 docker的安装

4、更换docker pull国内源

参考我的博客,docker学习笔记2

5、选择容器

这里我选择的为ubuntu16.04

docker pull ubuntu:16.04

6、启动docker

我的命令如下:

sudo docker run -it -d --name ctf -p 8087:80 -v /home/getf/ctf/flower_sql_insert:/var/www/html ubuntu:16.04
#在后台以名字为ctf,端口映射docker80到虚拟机8087,文件夹前面的映射到docker中后面的那个文件夹中运行
#运行的docker容器为ubuntu16.04
sudo docker ps
#查看正在运行的容器id
sudo docker exec -it id /bin/bash
#id替换为ni上个命令看到的id,一般来说输入前三位即可
#除非两个正在运行的docker的前三位是一样的,意思是进入正在运行的docker容器,并使用其的bash

更详细的参考我的博客,docker学习笔记4

7、安装apache+php+mysql

这个是我题目需要用到的环境,可自行选择所需的环境,坑点在这里了,无法安装软件,无法使用vim,解决办法可参考的博客,docker学习笔记3【 E: Unable to locate package docker镜像无法安装软件】
安装的步骤可参考我的博客,ubuntu16.04实测配置【php+mysql+apache】

8、弄题目代码,配置数据库等等

注意,这里我遇到了一个数据库报错,mysql启动报错【No directory, logging in with HOME=/】 ,可自行参考我的博客

9、打包

另开一个bash命令行

docker commit 8d4 ctf:new 
#注:8d4是id的前三位,可从docker ps获得,在对docker操作结束想进行保存是,可另开命令行进行保存
#ctf:new对应的是新的名字与注释
docker export 8d4 > ubuntu.tar
#这个是将其打包成docker压缩包供复制到其他电脑上去使用

好了,就这么多了,欢迎大家与我探讨使用docker遇到的问题,毕竟玩坏这么多虚拟机了,我还怕啥,qwq

你可能感兴趣的:(工具使用,为萌新服务的docker专栏)