docker使用
0x01 存出和载入镜像
存出镜像
如果要导出镜像到本地文件,可以使用 docker save 命令。
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 c4ff7513909d 5 weeks ago 225.4 MB
...
$sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
载入镜像
可以使用 docker load 从导出的本地文件中再导入到本地镜像库,例如
$ sudo docker load --input ubuntu_14.04.tar
或
$ sudo docker load < ubuntu_14.04.tar
这将导入镜像以及其相关的元数据信息(包括标签等)。
0x02 外网端口映射并且开机启动
外网端口映射
docker run -d -p 80:80 medicean/vulapps:b_bash_shellshock1
映射后并进入虚拟主机
docker run -i -t -p 20024:22 centos6:lamp /bin/bash
前面的宿主的端口,后面的虚拟机的端口
开机启动
vim /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
docker run -d -p 80:80 medicean/vulapps:b_bash_shellshock1
exit 0
0x03 docker镜像导入与导出
打包镜像
docker save -o b_bash_shellshock1.tar medicean/vulapps:b_bash_shellshock1
导入镜像
docker load < debian02.tar #导入镜像
docker images #查看存在的镜像
0x04 docker容器提交为最新镜像
docker commit <容器id> debian02 #把这个容器提交生成新的debian02镜像(该镜像是原始镜像与容器的整合)
0x05 删除镜像
如果要移除本地的镜像,可以使用 docker rmi 命令。注意 docker rm 命令是移除容器。
$ sudo docker rmi training/sinatra
Untagged: training/sinatra:latest
Deleted: 5bc342fa0b91cabf65246837015197eecfa24b2213ed6a51a8974ae250fedd8d
Deleted: ed0fffdcdae5eb2c3a55549857a8be7fc8bc4241fb19ad714364cbfd7a56b22f
Deleted: 5c58979d73ae448df5af1d8142436d81116187a7633082650549c52c3a2418f0
删除所有已经停止的容器
docker rm $(docker ps -a -q)
杀死所有正在运行的容器
docker kill $(docker ps -a -q)
删除From它来创建的新的镜像,可以先save,删除新的镜像。(这是个坑,一定要注意)
注意:在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器。
例:
在直接删除images时会报错,会提示这个images被某个容器引用。这时先删除容器就行了。
root@ubuntu:~# docker rmi 2a89da0d202c
Error response from daemon: conflict: unable to delete 2a89da0d202c (must be forced) - image is being used by stopped container db88f7
root@ubuntu:~# docker rm db88f72be24f
db88f72be24f
root@ubuntu:~# docker rmi 2a89da0d202c
Untagged: medicean/vulapps:b_bash_shellshock1
Deleted: sha256:2a89da0d202c0de32dc53c26295c0dc05d5487fcaae87d7e71d8fd7844943329
Deleted: sha256:ee4ceee5216269abc932e24dbe0f520a2a0eec413f1660d3926a2a33ade07eb5
Deleted: sha256:b9fe9c83f16b0faa61d5b1b7674af329fea8bfe41b8cfbd94aa6ab71900914cc
Deleted: sha256:3b0ebc0108f7c9ccc7e1dfaed5a402ec29cdd84c9e45b5648236751fa0193f84
Deleted: sha256:77c1d32cacbde4acd3dbddaa203f91761f8fe13bb181835a1019d83d9ccec2cf
Deleted: sha256:043ecf5c20e7481ae621e17b04e0e5924861f0b4fd8075b53ee38e44d852bb8f
Deleted: sha256:da7b3e8a328046694cb61a8dbf9e8f1a088f94521cd7d9ceb91a4aefd59d32b5
Deleted: sha256:0a76c056ffdd75aa174adcd05e4201e3503cb1abbf2013ed603ad5afb001891b
Deleted: sha256:2f71b45e4e254ddceb187b1467f5471f0e14d7124ac2dd7fdd7ddbc76e13f0e5
0x06复制镜像并重命名
docker tag imageid name:tag
0x07 启动镜像命令行
docker run -t -i cfe7ee52cb6e /bin/bash
0x07 attach容器命令
docker exec -it webmail bash
docker run -itd -p 80:80 --name=phpoa phpoa
0x08 docker 映射宿主机文件(/home/srcms/mysql)到容器(/var/lib/mysql)中
nohup docker run --name srcms -p 4040:80 -v /home/srcms/mysql:/var/lib/mysql -d --restart=always srcms
chcp 65001
网友评论