一.镜像命令
1.列出服务器上所有的镜像
docker images
docker images -a 列出服务器上所有的镜像
docker images -q 列出所有镜像的id 等同于 docker images -aq
docker search imageNmae 如docker search mysql 搜索镜像 ,从dockerHub上搜索镜像
docker search mysql --filter=STARS=10000 按条件搜索镜像,搜索starts大于10000的mysql镜像
2.下载mysql 镜像
docker pull mysql 默认是下载最新版本的,不指定tag的话
docker pull mysql:5.7 下载mysql 5.7镜像
3. 删除镜像
docker rmi -f mysql
docker rmi -f 镜像id 删除指定镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id 删除多个镜像
docker rmi -f $(docker images -aq) 删除所有镜像
二.容器命令
1.新建容器并启动
docker run imagNmae/imageId
docker run --name tomcat01 -it -p8888:8080 tomacat /bin/bash
参数说明
--name 指定容器的名字
-d 后台运行
-it交互运行
-p 指定容器端口号 -p 8888:8080 容器内8080端口,映射为宿主机的8888端口
-p ip:主机端口:容器端口 (常用的)
-P 随机指定端口
注:docker run -it centos /bin/bash 使用docker run 命令启动容器时,如果没有该镜像会去docker仓库下载镜像,然后运行容器
2.从容器退回到主机
exit ( 直接停止容器并退出) 或 ctrl + q + p 容器不停止退出
3. 查看运行的容器
docker ps 列出正在运行的容器
docker ps -a 列出所有正在运行的容器 + 历史运行过的容器
docker ps -q 列出所有正在云的容器 id
docker ps -aq 列出所有的容器id
docker ps -a -n=1 显示最近创建的容器
4.删除容器
docker rm 容器id 删除指定的容器,不能删除正在运行的容器,如果要强制删除使用 rm -f
docker rm -f $(docker ps -aq) 删除所有容器
docker ps -a -q | xargs docker rm 删除所有的容器
5.启动和停止容器
docker start 容器id 启动指定容器
docker restart 容器id 重启指定容器
docker stop 容器id 停止指定容器
docker kill 容器id 强制停止指定容器
三.常用的其他命令
1.后台启动容器 docker run -d 镜像名
docker run -d centos
问题 docker ps ,发现centos停止了
常见的坑:dockaer容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止,如ngix,容器启动后,发现自己没有提供服务,就会
立刻停止,就是没有程序的
2.查看日志
docker logs -tf 容器id 显示指定容器的所有日志信息
docker log -tf --tail 10 容器id 显示指定容器的10条日志信息
3.查看容器的进程信息
docker top 容器id
4.查看容器的元数据
docker inspect 容器id 显示指定容器的元数据
5.进入当前正在运行的容器
我们通常容器都是后台运行的,需要进入容器,修改一些配置
docker exec -it 容器id bashShell 如 docker exec -it dec7bdadasd /bin/bash 以交互模式进入正在执行的容器id为dec7bdadasd容器
docker attach 容器id 正在执行当前的代码 docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 进入容器正在执行的终端,不会启动新的进程
6.从容器内拷贝文件到主机上
docker cp 容器id: 容器内路径 目的的主机路径
如: docker cp asdasfa781:/home/test.java /home 拷贝容器id为asdasfa781的容器的/home下的test.java文件到宿主机的 /home下