docker在平时的使用中还是比较常见的,这里简单介绍一下docker以及其使用方法,希望对大家有用。
0x01 初识docker
Docker 从 0.9 版本开始使用 libcontainer 替代 lxc,libcontainer 和 Linux 系统的交互图如下:
并且docker安装容器的操作系统位数和物理机是统一的,也就是说64位操作系统只能使用64位docker容器,docker分为image和容器,一个镜像可以生成多个容器,并且容器的环境是相同的。
0x02 基本指令
参数:
–name 指定容器的名字
–rm 容器运行完毕会自动删除
-i -t 创建一个提供交互式shell的容器。
-d 在后台运行容器,并且打印出容器的ID。
-v 目录挂载 前面的是主机后面的是容器
–privileged 拥有真正的root权限
后面加的是容器刚生成是运行的程序默认是/bin/bash
0x1 容器生成
docker run --name weblogic -i -t centos
上述命令会生成一个名字为weblogic 的交互式容器,默认执行的是/bin/bash,所以会进入交互界面。如果本地没有centos的镜像会从远程下载到本地。
0x2 生成容器时的其他属性
docker run 命令用于生成容器 ,生成容器的属性之后不能再改变
端口映射
一般拥有web服务的容器都进行端口映射,将docker的80端口映射到主机的8000端口
docker run -d -p 8000:80 foo/live /bin/bash
环境变量
在配置mysql docker的时候使用-e参数设置环境变量
docker run --name first-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql
0x3 打开/关闭/附加/删除
docker start id 使上述生成的容器启动
docker stop id 使上述生成的容器关闭
docker exec -it id /bin/bash 附加正在运行的容器
docker attach continer id/name
当重新启动容器时,会沿用创建容器(docker run)命令时指定的参数来运行,可能需要按回车才进入。
这时就已经相当于在容器内部了的shell操作了。如果操作过程中,退出了shell。容器也会随之停止。
exec与attach的区别是当exit容器的时候exec不停止容器,而attach会将容器停止
删除时必须保证容器时关闭的
docker rm name/id 删除指定容器
删除所有镜像
docker rmi $(docker images -q)1
根据格式删除所有镜像
docker rm $(docker ps -qf status=exited)
0x4 压缩/导出/上传
我们用镜像生成了容器