Docker基本操作学习

devtools/2024/10/15 22:12:06/

基本指令

docker_1">docker服务启动:

service docker start
service docker restart
service docker stop# 重启服务器自动运行docker
systemctl enable docker

镜像生成方式:

通过docker build DockerFile…
生成镜像

镜像相关指令:

docker push 仓库
# 如何获取:
docker pull 仓库
# 查找:
docker search 仓库# docker查看有所有的镜像:
docker images# 查看这个docker的详细信息:
docker inspect xxx# 删除某个镜像:
docker rmi xxx

从镜像中创建一个容器:
docker run/exec/attach xxx
-it 可视化操作 --name设置容器名字 bash(运行命令行)
-p 映射端口 9000:8080 (将容器里的8080端口 映射到宿主机的9000端口上)

# 暂停某个容器:
docker pause node1
# 开启某个容器:
docker start node1
# 查看所有容器:
docker ps
# 删除某个容器:
docker rm node1

容器相关指令

# 通过容器保存成镜像:
docker commit 
# (适用于无状态服务)【谨慎使用】
# 退出时删除容器
docker run --rm xxx# 并且运行如果失败时 也会自动删除容器
# 运行时 当你使用停止时 他会自动删除该容器# 重启容器策略
# 默认不重启: no
# on-failure:3 最多重试3次重启
# always 只要挂了自动重启
# --restart on-failure:3# 运行时指定环境变量
docker run xxx -p -d -e XXX=xx -e XXX=xx# 查看环境变量的方式
docker inspect xxx# 再容器中运行一个终端 执行env命令 
docker exec -it xxx env# 查看容器内的日志 (-f 实时监听日志变化 -n只查看最后20行)
docker logs xxx  -f  -n 20# 进入容器内部中(使用bash脚本进入xx容器中)
docker exec -it nginx01 /bin/bash  xxx
# 退出容器
exit 

进阶:

数据卷:

打通容器内跟容器外的数据 持久化数据存储 即便容器被删除了。也可以保留(匿名绑定方式除外) 像mysql redis这种需要持久化数据的
可以使用volume达到持久化共享数据

匿名绑定:【使用 -v 可以指定对应容器内的共享命令】 如果容器被删除后 对应的匿名容器共享的volume也会被删除

docker run -d --rm -p 80:80 --name nginx01 -v /usr/share/nginx/html nginxdocker inspect xxx

查看Mounts属性 可以看出你是否共享成功数据卷

具名绑定:
docker run -d --rm -p 80:80 --name nginx01 -v nginx-html:/usr/share/nginx/html nginx
# 此处的nginx-html就代表具名绑定 不过具名绑定的缺点是无法指定容器外的路径
Bind Mount【工作中常用的方式】:

即便docker被卸载了他也可以存在
把主机的目录共享到容器内的目录

docker run -d --rm -p 80:80 --name nginx01 -v /www/ragga.com:/usr/share/nginx/html nginx
数据卷管理

docker volume ls

网络NetWork

Bridge(默认模式)

Docker0 docker的网卡 - docker创建的虚拟网桥 跟主机的网卡平级

Host模式:

容器内网络跟主机网络共享同一个网卡(直接将容器暴露到外网)【不常用】【不安全】

None模式:

等于是只有容器本地的网络127.0.0.1 没有ip 完全网络隔离
Container算是一种解决方案
不会创建自己的网络空间 与其他容器共享网络空间 直接使用指定容器的ip/端口等

自定义网络模式:【推荐】

不使用docker自带的网络模式 自己定制化特有的网络模式

容器间的互联指令
–link 在运行时加上(不常用)

** => docker network connect ragga net1
为net1添加一个ragga的网卡


http://www.ppmy.cn/devtools/24033.html

相关文章

Java知识点补充

反向代理的作用是什么? 是位于客户端和服务端之间一个代理模型,接受客户端的请求,将其转发到后端服务中,然后将后端响应传回客户端。 负载均衡:减少单个服务器之间的压力,将流量重定向到多个服务器中常见的…

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

引言 有没有遇到过这样的情况:当你手持手机或相机准备拍摄视频时,心中已经构想了完美的画面,但却因为实际的限制无法捕捉到理想中的角度?这种情况可能会让人感到挫折。例如,如果想要从地面一只蚂蚁的视角拍摄&#xff…

Swift中日期的相互转换

在Swift中,可以使用DateFormatter类来进行日期的相互转换。以下是一些常用的转换示例: 将日期字符串转换为Date对象: let dateString "2021-01-01" let dateFormatter DateFormatter() dateFormatter.dateFormat "yyyy-M…

Mybatis(9):自定义映射resultMap

resultMap:一般用于处理字段名和属性名不一致问题,或者多对一 一对多问题 tips: 1. 数据库字段名一般命名未emp_id这种下划线,但是实体类一般采用驼峰命名,不能用下划线 2. id在数据库中一般是自增主键,在业务中创建实体类…

LangChain Routing 学习笔记

LangChain Routing 学习笔记 0. 引言1. 使用提示词2. 使用 RunnableLambda 0. 引言 在使用大语言模型开发应用时,其中一个场景就是根据不同的输入,调用(或者说路由到)不同的逻辑。这就好比我们以前开发时经常使用的if ... else .…

安卓manifest中的meta-data及其应用

目录 前言一、meta-data简介二、meta-data用法三、meta-data应用场景参考链接&#xff1a; 前言 在日常的Android开发中&#xff0c;AndroidManifest中总会出现一些< meta-data>标签&#xff0c;或是第三方SDK配置信息&#xff0c;或是系统配置&#xff0c;那么< met…

[SQL系列]从零开始学Clickhouse——集群篇

在上一篇中&#xff0c;我们通过Docker构建了一个简单的单点Clickhouse&#xff0c;但是如果要做大数据的处理的话&#xff0c;Clickhouse集群是必不可少的&#xff0c;今天我们先用Docker简单地搭建一个Clickhouse集群。 容器逐个部署 使用Docker部署ClickHouse集群涉及几个步…

20240331-1-基于深度学习的模型

基于深度学习的模型 知识体系 主要包括深度学习相关的特征抽取模型&#xff0c;包括卷积网络、循环网络、注意力机制、预训练模型等。 CNN TextCNN 是 CNN 的 NLP 版本&#xff0c;来自 Kim 的 [1408.5882] Convolutional Neural Networks for Sentence Classification 结…