docker

Podman

June 27, 2024
docker, podman
docker, podman

Podman # 常用命令 # 2. 启动容器并进入交互模式 # 你可以使用 docker run 命令启动容器并进入容器的交互式 shell。这样你就可以进入容器内部进行调试。 复制代码 docker run -it --entrypoint /bin/bash nova-crawler:latest 参数说明: # -it:-i 表示以交互模式运行容器,-t 给容器分配一个伪终端,这样你就可以在终端与容器交互。 --entrypoint /bin/bash:这将覆盖容器的默认入口点,直接启动一个 bash shell 以便你进入容器进行调试。 nova-crawler:latest:你要运行的镜像名称。 3. 启动容器并调试特定命令 # 如果你不想进入容器的 shell,而是想直接执行调试命令(比如启动应用并在调试模式下运行),可以使用以下命令: bash 复制代码 docker run -it --entrypoint /bin/bash nova-crawler:latest -c "your-debug-command" 4. 查看容器日志 # 如果你希望在调试时查看容器的日志输出,可以使用以下命令: bash 复制代码 docker logs <container_id> 你可以通过 docker ps 查找运行的容器 ID,然后查看日志输出。 5. 调试时挂载本地目录(可选) # 如果你需要调试代码,并且希望挂载本地目录到容器中进行实时编辑,可以使用 -v 参数来挂载本地目录。例如,假设你的本地代码在 /path/to/your/code 目录下: bash 复制代码 ...

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]] ...