docker使用教程
0x01 获取镜像:
1 |
|
0x02 启动容器
该命令使用Ubuntu镜像启动一个容器:
1 |
|
参数说明
i:交互式操作;
-t:终端;
ubuntu:ubuntu镜像
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式shell,因此使用的是/bin/bash
退出终端直接输入exit
启动已停止运行的容器
1 |
|
使用docker start
启动一个已停止的容器:
1 |
|
0x03 后台运行
可以使用-d指定容器的运行模式:
1 |
|
注:加了-d
参数默认不会进入容器,想要进入容器需要使用指令docker exec
0x04 停止一个容器:
1 |
|
停止的容器可以通过docker restart
重启:
1 |
|
0x05 进入容器
在使用-d参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach
docker exec
:推荐使用docker exec
命令,因为此退出容器终端,不会导致容器的停止。
0x06 导出和导入容器
6.1 导出容器
如果要导出本地某个容器,可以使用docker export
命令
1 |
|
6.2 导入容器快照
可以使用docker import
从容器快照文件中再导入为镜像,一下实例将快照文件ubuntu.tar导入到镜像test/ubuntu:v1
1 |
|
也可以通过指定URL或者某个目录来导入,例如:
1 |
|
0x07 删除容器
删除容器使用docker rm
命令
1 |
|
0x08 运行一个web应用
例:在docker容器中运行一个Python Flask应用来运行一个web应用
1 |
|
参数说明:
-d
:让容器在后台运行;-P
:将容器内部使用的网络端口随机映射到我们使用的主机上
0x09 实战中docker相关的实践
容器和mysql日志恢复
1.服务器镜像sha256值是多少?
SHA256:327fd99f3e48231bec578755859f0f321982274c83d02910eadc7701edbd2e6a
2.服务器中部署数据库为?
使用docker container ls -a
命令查看docker容器,发现是Mysql数据库,为进一步验证使用docker inspect mysql
查看容器的配置信息
3.数据库使用了哪个端口?
端口号33060
4.数据库root用户的密码是多少?
密码123456
5.“林小某”的身份证号是多少?
注:这里需要用Mysqlbinlog
对binlog
日志进行恢复
因为容器启动后数据库中姓名字段没有林小某,考虑到需要数据恢复,针对binlog
日志进行单独的数据恢复,另外要注意,如果启动容器,原始的binlog
会被删除并重新生成
上面两张图,是容器启动后的目录和未启动前的对比(binlog.000001~binlog.000003)
,在binlog.000001
中,使用emeditor
选择utf-8
编码打开后,能搜到林小某的身份证号330…
通过mysqlbinlog
命令将日志生成sql语句
查看sql数据内容部分为base64
编码,使用mysqlbinlog
命令解码输出:
1 |
|
查看导出的123.txt,确定是被删除的数据
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!