docker 常用命令
特别注意:部署完项目,检查相应服务端口是否已在防火墙打开,否则访问不到
修改完要重启防火墙
//重启命令:
firewall-cmd --reload
//查看已开放的端口
firewall-cmd --list-ports
//开放端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
连续端口可以这样写:
firewall-cmd --zone=public --add-port=21115-21119/tcp --permanent
还有udp端口:
firewall-cmd --zone=public --add-port=21116/udp --permanent
-----------------------------------------------------------
---进入容器
1.对大多数容器:
docker exec -it 容器名或容器id /bin/bash
2.如果上述命令报错OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown,则此容器底层使用alpine制作,所以要用:
docker exec -it 容器名或容器id /bin/sh
//查看容器
docker ps
//查看所有的容器
docker ps -a
//删除容器
docker rm id
//查看镜像
docker images
//更改 名称
docker tag ${当前名称} ${需要的名称}
// docker 导出s
docker save -o //存放地址 镜像名称
例子:docker save java:8 -o java.tar #将java 8的镜像导出成tar文件
// 导入目录
docker load -i
例子:docker load -i java.tar
//容器开机启动
docker update --restart=always 容器id
--restart=参数值详解:
no:默认值,表示Docker容器停止时不自动启动容器
on-failure:表示若Docker容器退出状态非0,则自动重启,还可以指定重启次数,超过次数则不再启动
always:表示只要Docker容器为非运行状态,则自动启动容器
//查看挂载数据卷
docker volume ls
//清除数据卷
docker volume prune
//查看数据卷的位置
docker volume inspect html
//删除映像文件
docker rmi ${Id}
//docker build -t ${Name} .
//查看目录
find / | grep /network/admin
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
// 运行时,允许访问外网, -p 可以映射多个 -p
docker run -d --net=host --name ${dockername} -v ${本地地址}:${dockerPath} ${imageName} --restart=always
-d代表后台运行,
据我所知,--net=host(使用宿主机的网络,注意容器端口不要与宿主机其他已使用端口重复,否则会冲突报错) 仅适用于 Linux,它让 hbbs/hbbr 可以看到对方真实的ip, 而不是固定的容器ip (172.17.0.1)。 如果–net=host运行正常,-p选项就不起作用了, 可以去掉。
--rm 在容器退出时删除 容器及数据, 不要与-d一起使用,没有意义