docker常用命令
docker常用命令
镜像操作
搜索指令
通过镜像仓库搜索
Docker镜像仓库网址:https://hub.docker.com/search?q=&type=image
指令搜索
docker search tomcat //搜索tomcat镜像
下载镜像
docker pull 镜像名称 //查询最近的版本
docker pull 镜像名称:版本标签
# 如:
docker pull tomcat
docker pull tomcat:8.5.57-jdk8-openjdk-slim
查看本地镜像
docker images
删除镜像
docker rmi tomcat:8.5.57-jdk8-openjdk-slim //通过镜像名:版本号
或
docker rmi b1a27cee0cec //通过IMAGE ID删除
保存镜像为文件
docker save -o /root/tomcat.tar tomcat:8.5.57-jdk8-openjdk-slim
// -o /root/tocmat.tar 保存为文件的地址
把保存的镜像备份文件恢复成镜像
docker load -i /root/tomcat.tar
容器操作
使用镜像新建一个容器
docker run
- 创建并运行一个java容器,打印helloworld!
docker run java:8 /bin/echo 'Hello World!'
- 创建一个Centos容器
docker run -dti --name=c1 centos:centos7 /bin/bash
-d 表示守护式容器(用户退出容器后,容器依然可以正常运行)
-i 运行容器
-t 交互 后面跟交互shell脚本 /bin/bash
centos:centos7 镜像名称
-
创建一个有网络使用容器
如:创建一个容器nginx 端口为 80
-p 端口映射 宿主机端口:容器端口
列出容器
- 列出当前正在运行的容器 docker ps
- 列出当前全部容器 docker ps -a
- 列出当前容器的所有编号 docker ps -a -q
停止容器
docker stop 容器的names
docker stop 容器的CONTAINER ID
如:
docker stop c1
docker stop 36bee7ca1cf4
启动容器
docker start 容器名称或容器编号
docker start n1
强制停止容器
docker kill 容器名称或容器编号
重启容器
docker restart 容器名称或者容器编号
如何进入到容器
docker exec -it c1 /bin/bash
退出容器
exit
从宿主机拷贝文件到容器
在宿主机上创建文件并编辑
touch java511.txt
vi java511.txt
拷贝到容器中
docker cp /java511.txt c1:/root/
从容器拷贝文件到宿主机
docker cp c1:/1.java /root/2.java
挂载宿主机的指定目录到容器(其中 --privileged 是可选的)
(如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题)
docker run -di --name=c2 -v /root/html:/test0722 --privileged=true centos:centos7
删除容器
docker rm 容器名称或者编号 //注意 不能删除正在运行中容器, 需要停掉才可以删除
docker rm -f 容器名称或者编号 // -f 强制删除
查看容器ip
docker inspect n1 //输出的内容较多
docker inspect --format='{{.NetworkSettings.IPAddress}}' n1 //只输出ip
查看容器日志输出
docker logs n1 查看日志
docker logs --tail="2" n1 查看日志 左后2行。
设置容器随着docker服务器启动就自动启动
docker update --restart=always 容器名称
批量删除
- 建议先停止所有容器,再执行删除(也可加-f强制删除,但是不推荐):
docker stop $(docker ps -a -q)
- 删除所有容器
docker rm $(docker ps -a -q)
- 删除所有镜像(操作 有风险, coding需谨慎)
docker rmi $(docker images -q)