docker

Podman

June 27, 2024
docker, podman
docker, podman

Podman # 命令用法 # 命令几乎和docker一致, alias docker=podman完全可以无感知 不同点 # pull路径需要完整 podman pull docker.io/library/mysql:5.7 迁移镜像存储路径 # 切换到 lazydocker # [[Note of Docker#lazydocker 可视化]] export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock lazydocker VSCode # Dev Containers # https://code.visualstudio.com/remote/advancedcontainers/docker-options 在插件设置中, 将Docker Path里docker修改为podman即可 网络 # slirp4netns问题 # podman network connect example-network example-container会报错 podman 网络连接未针对 slirp4netns 实现 #19577

k8s技术分享

September 7, 2023
Linux, k8s, docker

k8s技术分享 # 工作负载资源 # 一、pod # 1. 概要 # 可创建管理、最小的可部署计算单元,是可以在主机上运行的容器的集合 我们的服务都在其中运行。如我们的服务是nginx,则最内层是我们的服务 nginx,运行在 container 容器当中。container (容器) 的本质是进程,而 pod 是管理这一组进程的资源 所以pod可视为一个极为轻量化、没插网线的电脑,如果所需任务无需交互,那么用pod就很合适。例如给它挂载一个文件来训练模型、生成报表,可以根据场景使用 Job 或者 CronJob 或者其它 图示关系如下 # ![[k8s-pod-insert.png]] 2. pod网络 # 当然,pod 可以管理多个 container,又因为container (容器) 的本质是进程,如果有本地网络通信需求(使用 localhost 或者 Socket 文件进行本地通信),在这些场景中使用 pod 管理多个 container 就非常的推荐。 如下图展示了Pod网络所依赖的3个网络设备 1. eth0是节点主机上的网卡,支持该节点流量出入的设备、也是支持集群节点间IP寻址和互通的设备; 2. docker0是一个虚拟网桥,可以简单理解为一个虚拟交换机,支持该节点上的Pod之间进行IP寻址和互通的设备; 3. veth0则是Pod1的虚拟网卡,支持该Pod内容器互通和对外访问的虚拟设备; 4. docker0网桥和veth0网卡,都是linux支持和创建的虚拟网络设备; 5. pause属于特殊容器,其运行的唯一目的是为Pod建立共享的veth0网络接口 ![[k8s-nginx-pod.png]] 二、deployment、StatefulSet # 1. 概要 # Deployment 使得 Pod 和 ReplicaSet 能够进行声明式更新 StatefulSet 表示一组具有一致身份的 Pod: 1. 身份定义为: ...

Docker

December 16, 2021
note, docker, learning
docker, learning

Docker # 教程手册 # 好用的使用教程 Install # 略过~ 😁 打镜像和跑 # docker build -t server:v0 . -f server.dockerfile 跑 # docker run -p 9080:80 --name server server:v0 指定启动命令 # sudo docker run -it -p 9080:80 --name nova_server nova_server:v0 sh -c "echo hello" 加入自定义网络 # --network {{network name}} 详见:[[#Network]] 跑出问题-进入容器排查 # sudo docker run -it -p 9080:80 --name nova_server nova_server:v0 sh -c "bash" 使用-it进入容器手动执行命令进行调试 启动全部容器 # docker ps -a | grep "Exited" | awk '{print $1}' | xargs docker start Network # docker run时容器加入方法-redis为例 后期加入方式 创建一个新网 检测 init_redis: docker run -p 6379:6379 \\ --network websafe-network \\ --name redislatest redis:latest --requirepass 3b21d032a7fd8eb51fa7bd8a2e812b78b7b3a36f join_network: docker network connect websafe-network mysql56 docker network connect websafe-network daemon-xxx init_network: docker network create websafe-network check_network: docker network inspect websafe-network docker network inspect websafe-network | findStr IPv4Address 删除 # 可视化 # go install github. ...

Docker

December 16, 2021
note, docker, learning
docker, learning

Docker # 教程手册 # 好用的使用教程 Install # 略过~ 😁 基础命令 # 打镜像和跑 # 打 # docker build -t server:v0 . -f server.dockerfile dockerignore # 如果您想在 Dockerfile 中将当前目录中的所有文件都复制到 Docker 镜像中,可以使用 Dockerfile 中的 COPY 指令。具体的语法如下: COPY . /目标路径/ 其中. 表示当前目录,/目标路径/ 表示目标路径,这里可以是绝对路径或相对路径。 这将会将当前目录中的所有文件复制到镜像中的 /app/ 目录下。请注意,在这种情况下,所有文件和文件夹都会被复制到镜像中,包括隐藏文件和文件夹。如果您不想复制某些文件或文件夹,可以在运行 COPY 指令之前通过 .dockerignore 文件来指定忽略的文件和文件夹。 跑 # docker run -p 9080:80 --name server server:v0 指定启动命令 # sudo docker run -it -p 9080:80 --name nova_server nova_server:v0 sh -c "echo hello" 加入自定义网络 # --network {{network name}} 详见:[[#Network]] ...