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,makemake 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
posted @   活的潇洒80  阅读(1000)  评论(0编辑  收藏  举报
编辑推荐:
· 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批量部署服务
点击右上角即可分享
微信分享提示