docker pull 镜像名:版本号 拉取镜像
docker images 查看所有已拉取的镜像
docker ps 查看正在运行的容器
docker ps -a 查看所有启动过的容器
docker update --restart=always 容器名称 设置容器自启动(docker启动后容器自启动)
docker stop 容器名 关闭容器
docker rm 容器名 删除容器(需要先关闭容器)
docker rm -f 容器名 强制删除
docker rmi 镜像名 删除镜像
docker search tomcat 在远程仓库中搜索tomcat相关镜像
启动一个容器:
docker run -d --name node1 -p 5121:5121 -v /Users/apple/tomcat.cfg test/tomcat:v0.30.6
-d 表示后台运行
--name 设置容器名称
-p 设置端口映射,格式:外部端口:内部端口 可以设置多个端口的映射,后面追加-p 端口:端口 即可
-v 设置映射文件路径,格式:外部文件路径:内部文件路径
docker run -p 8081:8080 tomcat这种格式比较常用
test/tomcat:v0.30.6为容器内要启动的程序
docker run命令时若加上--restart=always表示该docker容器自动重启
进入容器:docker exec -it test-tools /bin/sh
格式:docker exec -it 容器名 内部路径
docker ps -a | wc -l 查看容器数量
lsof -i:端口号 查看使用端口的进程
kill 进程PID 释放端口
实际使用过程中遇到的问题:删除容器后,容器映射的端口未释放,再次使用该端口执行,容器启动后但内部的程序未启动,所以要先释放端口,然后重新启动,或者重启docker
docker部署tomcat:
1、docker pull tomcat
2、docker run -d -p 8085:8080 tomcat
此时访问localhost:8085页面报错404
解决方法:
1、docker exec -it tomcat容器id /bin/bash 进入tomcat容器
2、ls webapps查看webapps目录下文件,里面没有东西,查看webapps.dist里面有东西,所以需要删除webapps(使用命令rm -rf webapps),把webapps.dist改为webapps(mv webapps.dist webapps)