docker作为容器常见用于快速部署,最近有个项目是基于docker的,总结一下docker的测试。
1、在主机中安装Docker:
ubuntu安装:curl -s https://get.docker.io/ubuntu/ | sudo sh
2、拷贝docker镜像到主机
3、运行docker。简单说就是:load——>run
docker load < 镜像路径
docker run …… docker名字(做镜像时指定的)
其中在本项目中run命令常用的参数:
-d:以守护进程方式运行(后台)
-P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口
-p <HOT_PORT>:<CONTAINER_PORT>:指定端口号
--name: 指定容器的名称,方便使用、更新
--rm:退出时删除容器
-restart=always:docker服务启动后自动运行本镜像
--privileged=true:当操作者执行Docker时将拥有访问主机所有设备的权限,这个命令比较危险,一般是因为-v后权限有问题才使用
--net=host:设置容器的网络模式。none 关闭容器内的网络连接;bridge 通过veth接口来连接容器,默认配置;host 允许容器使用host的网络堆栈信息 注意:这种方式将允许容器访问host中类似D-BUS之类的系统服务,所以认为是不安全的 ;container 使用另外一个容器的网络堆栈信息。
-v 主机目录:docker镜像内部目录:设置共享,容器内部对这个目录的操作会直接写到主机,容器删除后这个主机目录也不会被删除,容器启动时如果主机目录有数据则会使用里面的数据
常用docker命令:
docker ps -a——列出所有容器
docker rm -f 容器id——删除容器
docker images——列出所有镜像
docker rmi 镜像id——删除镜像
docker rm `docker ps -a -q`——删除所有容器
docker rmi `docker images -q`——删除所有镜像
docker rmi --force `docker images | grep doss-api | awk '{print $3}'` —— 按条件删除镜像, 其中doss-api为关键字
docker run——运行镜像
docker start 容器id——启动容器
docker restart 容器id——重启容器
docker exec -it main /bin/bash——从主机中进名叫main的镜像内部
docker system prune -a -f —— 删除所有docker内容