Docker概念
-
Docker 是一个开源的应用容器引擎
-
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上
-
容器是完全使用沙箱机制,相互隔离
-
容器性能开销极低
小结:docker是一种容器技术,解决软件跨环境迁移的问题
Docker 镜像操作命令
-
docker images //显示
-
docker save //保存
-
docker load //加载
-
docker rmi //删除
-
docker push //推送
-
docker pull //拉取
Docker 容器相关命令
-
docker run // 创建容器以及运行容器
-
docker pause //暂停
-
docker unpause //不暂停
-
docker stop //停止
-
docker start //开始
-
docker run --name mn -p 80:80 -d nginx
-
--name :指定容器名字
-
-p :指定容器端口映射
-
-d :让容器后台运行
-
-
-
docker ps //查看所有运行的容器及其状态 ,默认运行状态的
-
-a 查看所有的
-
-
docker logs //查看日志
-
添加 -f 参数可以持续查看日志
-
-
docker exec //进入容器执行命令 退出 exit
-
docker exec -it [容器名] [ 要执行的命令:例bash]
-
-
docker rm //删除容器
-
-f 强制删除运行的容器
-
创建一个redis容器
-
docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
-
docker exec -it mr redis-cli
-
keys *
-
set num 666 get num
数据卷
-
(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录
-
作用:将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
-
操作语法:docker volume [command]
-
docker volume 是数据卷操作,,根据命令后跟随的command来确定下一步操作
-
create //创建一个volume
-
inspect //显示一个或者多个volume的信息
-
ls //列出所有的volume
-
prune //删除未使用的volume
-
rm //删除一个或者多个指定的volume
-
-
注:docker volume --help 可以查看
挂载数据卷 -v
-
-v volumeName:/targetContainerPath
-
如果容器运行时volume不存在,会被自动创建出来
-
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx
-
-v html:/usr/share/nginx/html html 是数据卷名称,,后面的是容器内的html目录
-
查看 :docker volume inspect html
-
进入该目录:cd /var/lib/docker/volumes/html/_data
-
修改 :vi index.html
服务重启,docker挂掉了
-
systemctl restart docker
-
systemctl status docker
直接挂载到宿主机上
-
-v 宿主机文件:容器内文件
-
-v 宿主机目录:容器内目录
自定义镜像-镜像结构
-
镜像是分层结构,每一层称为一个Layer
-
BaseImage :包含基本的系统函数库,环境变量,文件系统
-
Entrypoint:入口,是镜像中应用启动的命令
-
其它:在BaseImage基础上添加依赖,安装程序,完成整个应用的安装和配置
-
DockerCompose
-
可以基于Compose文件帮我们快速部署分布式应用,而无需手动一个个创建和运行
-
Compose文件是一个文本文件,通过指令定义集群中的每一个容器如何运行。【运行容器的集合】
Docker镜像仓库
-
推送本地仓库,要重命名(docker tag)镜像,以镜像仓库为地址
-
docker tag nginx:latest 192.168.142.129:8080/nginx:1.0
-
-
镜像仓库推送前需要把仓库地址配置到docker服务的daemon.json,被docker信任
-
vi /etc/docker/daemon.json
-
"insecure-registries":["http://192.168.142.129:8080"]
-
-
systemctl restart docker
-
mkdir registry-ui
-
touch docker-compose.yml
-
-
推送使用docker push命令
-
docker push 192.168.142.129:8080/nginx:1.0
-
-
拉取使用docker pull命令
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战