Docker的常用命令
一:镜像相关命令:
1、查找镜像信息:docker search [镜像名],这里查找的镜像默认都是在docker hub里查找的,地址为:https://hub.docker.com/
示例:docker search myql
2、拉取镜像:docker pull [镜像名]:tag,这里的tag是可选的,默认是lastest,可以在官方搜索镜像源后指定拉取特定tag的镜像。
示例:docker pull mysql
3、查看本地镜像列表:docker images
4、查看镜像详细信息:docker inspect [镜像名]
5、删除镜像:docker image rm [镜像名]
6、强制删除镜像:docker image rm -f [镜像名]
7、删除名称为none的镜像:$ docker rmi $(docker images | grep "none" | awk '{print $3}')
二:容器命令
操作 | 命令 | 说明 |
运行 | docker run --name container-name -d image-name | --name:自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps(查看运行中的容器) | 加上-a可以查看所有容器 |
启动 | docker start container-name/container-id | 启动容器 |
停止 | docker stop container-name/container-id |
停止容器 |
删除 | docker rm container-id |
删除容器 |
端口映射 | -p [主机端口]:[容器端口] |
主机端口映射到容器内部端口 |
容器日志 | docker logs container-name/container-id |
查看容器日志 |
更多命令介绍: https://docs.docker.com/engine/reference/commandline/docker/ |
实例:
1、先拉取tomcat镜像:docker pull tomcat
2、运行tomcat容器:docker run --name mytomcat -d tomcat
3、停止tomcat容器:docker stop [容器名称/容器id]
4、启动tomcat容器:docker start [容器名称/容器id]
5、删除tomcat容器:docker rm [容器名称/容器id],删除时必须要保证容器是停止状态的
6、一条命令删除所有状态的容器:docker stop $(docker ps -q) & docker rm $(docker ps -aq)
7、映射虚拟机端口与容器内部端口:docker run -d -p [虚拟机端口]:[容器内部端口] [镜像名]
为什么需要做映射呢?是因为我们在访问docker容器时,是无法直接访问到的,我们可以通过访问虚拟机的端口再映射到容器启动的服务端口,从而达到我们访问Docker容器服务的效果。
此时已经启动了tomcat容器,这时候我们进行访问tomcat:
报404了,排查步骤:
1、确定是否是防火墙问题:
(1)先查看防火墙状态:service firewalld status
可以看到防火墙是关闭的,所以不是防火墙问题
(2)如果防火墙没关闭,先关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
(3)进入tomcat的安装目录:docker exec -it b76c09c6ad66 /bin/bash,其中-it 接的是容器ID
(4)分别查看webapps,与webapps.dist的文件情况:
发现本应该映射到webapps目录下的文件目前docker放到了webapps.dist下,所以我们把webapps.dist下文件复制到webapps下:
先把webapps文件夹删除:rm -rf webapps
再把webapps.dist下的文件全拷贝到webapps下: cp -r webapps.dist webapps
退出bash模式:Ctrl+D
(5)再访问docker容器启动的tomcat