☰
Docker进阶之路(1)
2026/10/11 2:41:49 网站建设 项目流程

一、什么是docker

所谓的docker其实是一款容器管理工具。

容器可以简单立即为打包Linux文件的一种工具。

官网:
https://www.docker.com/

官方文档:
https://docs.docker.com/

官方仓库:
https://hub.docker.com/


二、使用二进制部署docker环境

参考链接:

https://docs.docker.com/engine/install/binaries/

1.下载docker软件包 wget https://download.docker.com/linux/static/stable/x86_64/docker-28.3.0.tgz 2.解压软件包 [root@elk91 ~]# tar xf docker-28.3.0.tgz 3.将docker程序放到PATH环境变量 [root@elk91 ~]# cp docker/* /usr/bin/ [root@elk91 ~]# 4.启动docker服务端 [root@elk91 ~]# dockerd 5.客户端测试验证 [root@elk91 ~]# docker version Client: Version: 28.3.0 API version: 1.51 Go version: go1.24.4 Git commit: 38b7060 Built: Tue Jun 24 15:43:00 2025 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 28.3.0 API version: 1.51 (minimum version 1.24) Go version: go1.24.4 Git commit: 265f709 Built: Tue Jun 24 15:44:17 2025 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.7.27 GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da runc: Version: 1.2.6 GitCommit: v1.2.6-0-ge89a299 docker-init: Version: 0.19.0 GitCommit: de40ad0 [root@elk91 ~]# 6.卸载docker环境 [root@elk91 ~]# kill `ps -ef | grep dockerd | grep -v grep |awk '{print $2}'` [root@elk91 ~]# [root@elk91 ~]# for pkg in containerd containerd-shim-runc-v2 ctr docker dockerd docker-init docker-proxy runc;do rm -f /usr/bin/$pkg ;done [root@elk91 ~]# [root@elk91 ~]# rm -rf /var/lib/docker/ [root@elk91 ~]#

三、docker管理镜像的相关命令

>拉取镜像:
docker pull 镜像


>导入镜像:
docker load -i 镜像
docker load < 镜像


>导出镜像:
docker image save -o 压缩包 本地镜像


>删除镜像:
docker image rm -f 镜像
docker image rm -f 镜像id
基于镜像id删除所有镜像:
docker image rm -f `docker image ls -q`


>为镜像打标签:
docker image tag 镜像 标签

四、docker管理容器的相关命令

>查看容器列表:
docker container ps -a
docker container ls -a
docker ps
docker ps -a

>直接运行容器:
docker container run --name xiuxian -p 100:80 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
在后台运行容器:
-d
>创建容器:
docker container create --name xiuxian -p 100:80 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
>启动容器:
docker container start xiuxian
>停止容器:
docker container stop xiuxian
>删除容器:
docker container rm xiuxian
>删除所有容器:
docker rm -f `docker ps -a`
>修改容器名称:
docker rename xiuxian xiuxian1
>和容器交互:
docker exec -it xiuxian sh

五、故障排查

>logs命令
实时查看容器日志:
docker logs -f xiuxian
查看最近20分钟的日志:
docker logs -f --since 20m xiuxian
查看10分钟之前的日志:
docker logs -f --until 10m xiuxian

>cp命令
将宿主机文件拷贝到容器中:
docker cp /etc/hosts xiuxian:/
将容器文件拷贝到宿主机中:
docker cp xiuxian:/docker-entrypoint.sh /tmp

六、容器的4种重启策略

>概念
所谓的重启策略指的是容器在退出时,是否重新启动

>4种重启策略
no 不自动重启:容器如果挂了,就彻底停止
always 总是重启:只要容器停止,docker都会重启它
on-failure 错误退出时重启:只有容器非正常退出时才重启
unless-stopped 除非手动停止,否则重启:正常退出会重启,手动停止,退出后不会重启

七、docker的单机网络类型

>bridge(桥接网络) 默认模式:
docker会创建一个虚拟交换机(docker0),容器通过它内部互相通信
需要对外提供服务时,需要对外暴露端口:
# 运行一个Nginx容器,映射宿主机8080端口到容器的80端口
docker run -d --name my_nginx -p 8080:80 nginx


>host(主机网络)直接共享宿主机网络:
容器直接使用宿主机网络
容器端口直接暴露在宿主机上,无需-p映射
# 容器直接使用宿主机的80端口
docker run -d --network=host nginx


>none(无网络):
容器没有网络接口:只有本地会还地址127.0.0.1


>container(共享其他容器网络):
新容器共享指定容器的网络


>自定义bridge网络:
创建

[root@elk91 ~]# docker network create -d bridge --subnet 172.20.0.0/16 --ip-range 172.20.100.0/24 --gateway 172.20.0.254 tes 查看网络信息: docker network inspect test 创建网络并指定自定义网络: 自动分配: [root@elk91 ~]# docker run --name c1 -d --network test registry.cn-hangzhou.aliyuncs.com/jie-k8s/apps:v1 指定分配ip: [root@elk91 ~]# docker run --name c3 -d --network test --ip 172.20.200.200 registry.cn-hangzhou.aliyuncs.com/jie-k8s/apps:v1

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询