Docker:常用命令大全 [七]
一、docker的命令的解释
1、命令解释
1 2 3 4 5 6 | docker run -d -p 80:80 nginx run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字 |
2、配置docker镜像加速
1 2 3 4 5 6 | vi /etc/docker/daemon .json { "registry-mirrors" : [ "https://registry.docker-cn.com" ] } systemctl restart docker |
3、docker容器是一种软件的打包技术,接下来我们体验一下
1、传统编译安装nginx:
1 2 3 4 5 6 7 | 官网下载Nginx源码包wget tar 解压源码包 创建Nginx用户 安装依赖包 编译安装三部曲configure, make , make install 修改nginx配置文件 启动nginx |
2、docker容器
1 | docker run -d -p 80:80 nginx |
二、镜像常用命令
1、搜索镜像:
1 | docker search |
选镜像的建议:
1,优先考虑官方
2,starts数量多
2、获取镜像:
1 | docker pull(push) |
镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速:https://registry.docker-cn.com
1 2 | docker pull centos:6.8(没有指定版本,默认会下载最新版) docker pull daocloud.io /huangzhichong/alpine-cn :latest |
扩展:查询docker镜像所有版本https://hub.docker.com/r/library/
3、查看删除导出
1、查看镜像
1 | docker images |
2、删除镜像
1 | docker rmi 例子:docker image rm centos:latest |
3、导出镜像
1 | docker save 例子:docker image save centos > docker-centos7.4. tar .gz<br>docker save mysql:5.7> mysql-5.7. tar .gz |
4、导入镜像
1 | docker load 例子:docker load -i docker-centos7.4. tar .gz |
三、容器常用命令
1、运行一个容器
1 2 3 4 5 6 7 8 | docker run -d -p 80:80 nginx:latest run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx:latest docker镜像的名字和版本 还有很多其他的参数 docker run == docker create + docker start |
2、进入到容器
进入容器的目的:排错,调试
进入容器的方法:
1 2 3 4 5 6 7 8 9 | docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 例子: docker exec -it 容器 id 或容器名字 /bin/bash docker attach [OPTIONS] CONTAINER 例子: docker attach 容器 id 或容器名字 nsenter(安装yum install -y util-linux 弃用) |
3、停止删除容器命令
1、停止容器
1 | docker stop CONTAINER_ID |
2、杀死容器
1 | docker kill container_name |
3、查看容器列表
1 2 3 4 | docker ps docker ps –a docker ps –a -l |
4、删除容器
1 | docker rm |
5、批量删除容器
1 | docker rm -f `docker ps -a -q` |
4、要获取所有容器名称及其IP地址只需一个命令。
1 | docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq) |
如果使用docker-compose命令将是:
1 | docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) |
5、显示容器的所有IP
1 | docker inspect -- format = '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) |
四、容器网络访问常用命令
1 2 3 4 5 6 7 8 | docker run -it --name centos6 centos:6.8 /bin/bash -it 分配交互式的终端 --name 指定容器的名字 /bin/sh 覆盖容器的初始命令 --cpus 指定cpu的数量 --memory 限定内存的大小 -h 指定容器的主机名 |
docker的本质是:在隔离的环境运行的一个进程
所以:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!
1、运行容器为什么要使用端口映射?
默认,情况下,容器使用的ip是172.17.0.0/16网段的,外界的用户只能访问宿主机的10.0.0.0/24网段,
无法访问172.17.0.0/16网段。我们运行容器的目的:是希望运行在容器中的服务,能够被外界访问,
这里就涉及到了外网10.0.0.0/24到容器内网172.17.0.0/16网段的转换,所以需要做端口映射
2、指定映射(docker 自动添加一条iptables规则实现端口映射)
1 2 3 4 5 | -p hostPort:containerPort -p ip:hostPort:containerPort -p ip::containerPort(随机端口) -p hostPort:containerPort:udp -p 81:80 -p 443:443 可以指定多个-p |
3、随机映射
1 | docker run -P (随机端口) |
五、数据卷常用命令
1、数据卷的作用:
1:持久化容器运行过程中产生的数据文件
2:实现多个容器间的文件共享。
正常情况下,删除容器,容器中所有的文件也会被删除
2、数据卷常用命令
1、创建一个数据卷
1 | docker volume create |
2、查看数据卷列表
1 | docker volume ls |
3、删除一个数据卷
1 | docker volume rm |
4、查看一个数据卷的属性
1 | docker volume inspect |
3、docker数据卷运用一
1 2 3 4 5 6 7 8 9 10 11 | docker volume create luoahong docker run -d -p 80:80 - v luoahong: /usr/share/nginx/html nginx:latest cd /var/lib/docker/volumes/luoahong/_data/ rm -f * wget https: //www .qstack.com.cn /xiaoniaofeifei .zip unzip xiaoniaofeifei.zip docker run -d -p 81:80 - v luoahong: /usr/share/nginx/html nginx:latest docker run -d -p 82:80 - v luoahong: /usr/share/nginx/html nginx:latest |
4、把宿主机的目录挂载到容器中
1 2 3 4 5 | cd /opt mkdir xiaoniao cd xiaoniao/ wget https: //www .qstack.com.cn /xiaoniaofeifei .zip unzip xiaoniaofeifei.zip |
重点
1 | docker run -d -p 83:80 - v /opt/xiaoniao : /usr/share/nginx/html nginx:latest |
作者:罗阿红
出处:http://www.cnblogs.com/luoahong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
分类:
云计算Kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2017-01-15 vmware克隆Centos6.7虚拟机网卡无法启动问题
2017-01-15 SSH批量部署服务