Linux云服务器docker使用教程

embedded/2024/11/23 23:09:07/

诸神缄默不语-个人CSDN博文目录

我用的是腾讯云服务器,操作系统是OpenCloudOS 9,基本上可以当特色版CentOS用。
docker安装跟各个系统关系太大了,我就不写了。OpenCloudOS 9安装docker见这篇博文:腾讯云服务器使用教程

文章目录

  • 1. 拉docker镜像
  • 2. 启动、运行、退出容器
    • 1. 启动交互式容器
    • 2. 退出容器
    • 3. 使用Dockerfile
    • 4. 进入已存在的docker服务的交互式容器中
    • 5. docker run命令参数
  • 3. 提交镜像
  • 4. 查看所有docker服务
  • 5. 查看容器日志
  • 6. 执行容器中的命令行
  • 7. 将主机中的文件复制到容器里
  • 本文撰写过程中参考的其他网络资料

docker_6">1. 拉docker镜像

由于众所周知docker官方镜像被墙了,所以需要用民间镜像跳转,举例python:3.10镜像:

sudo docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/python:3.10
sudo docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/python:3.10  docker.io/library/python:3.10

我用的这个镜像的网址:https://docker.aityp.com/image/docker.io/library/python:3.10

2. 启动、运行、退出容器

1. 启动交互式容器

启动容器,启动一个交互式容器并进入容器环境:sudo docker run -it --name my_python_env python:3.10 /bin/bash

在交互式容器环境内就跟在正常终端内操作一样了,在有Python环境的容器内就可以运行pip、python等命令了。

2. 退出容器

在使用 docker run -it 命令启动交互式容器后,您可以通过以下方式退出容器:

  1. 保持容器运行,退出交互会话:

    如果希望退出交互会话但让容器继续在后台运行,请按以下键组合:

    • 键盘组合: Ctrl + P,然后立即按 Ctrl + Q

    此操作将使您退出容器的交互会话,但容器仍在后台运行。

  2. 退出并停止容器:

    如果希望退出交互会话并停止容器,可以使用以下方法:

    • 输入命令: 在容器内输入 exit 命令

      exit
      
    • 键盘组合:Ctrl + D

    这两种方式都会使您退出容器的交互会话,并停止容器的运行。

3. 使用Dockerfile

在项目目录下创建一个名为 Dockerfile 的文件,内容如下:

dockerfile">FROM python:3.10# 设置容器的工作目录
WORKDIR /appCOPY /home/user/myfile.txt /root/# 安装依赖包
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple# 设置默认命令
CMD ["python", "your_script.py"]

在Dockerfile所在目录下运行以下命令构建镜像:docker build -t my_python_app:latest .
此命令将创建一个名为 my_python_app:latest 的镜像。

使用构建的镜像运行容器:docker run -it --name my_running_app my_python_app:latest
此命令将启动一个名为 my_running_app 的容器,并运行 your_script.py。

docker_65">4. 进入已存在的docker服务的交互式容器中

docker exec -it -u 0 my_python_app COMMAND
COMMAND在Python环境里就可以是/bin/bash

docker_run_68">5. docker run命令参数

  1. -v:指定容器目录/app到Linux目录文件的映射,意思是这个参数指定的路径就相当于容器目录/app了,Dockerfile就直接在这里运行,所以your_script.py也要放在这里
  2. -p:Linux宿主机、容器的端口映射,比如1080:5000就相当于把访问主机的1080端口映射成访问容器的5000端口
    如果容器内有多个服务需要映射,可以使用多个 -p 参数。

3. 提交镜像

docker commit my_python_env my_python_image:latest

docker_74">4. 查看所有docker服务

sudo docker ps
会展示正在运行的服务的如下信息:

CONTAINER ID   IMAGE         COMMAND       CREATED              STATUS              PORTS     NAMES

5. 查看容器日志

docker logs 容器ID
这个容器ID用上一节提到的docker ps看就行。

6. 执行容器中的命令行

docker exec -it 容器ID bash命令行

7. 将主机中的文件复制到容器里

docker cp --chmod=u+x 主机文件路径 容器ID:容器文件路径
chmod是在这里给个权重,不能更改文件或目录的所有权或组。

(持续访问文件用docker volume。构建新的镜像时可以在Dockerfile中添加,就用COPY就行,文件会成为镜像的一部分,以后分发和部署就直接自动放进去。此外也可以靠放在docker run -v挂载的目录里)

本文撰写过程中参考的其他网络资料

  1. Linux下docker运行python_linux docker运行python-CSDN博客
  2. linux怎么办文件拷贝进docker_mob649e816209c2的技术博客_51CTO博客
  3. Docker cp怎样设置权限 - 问答 - 亿速云

http://www.ppmy.cn/embedded/139963.html

相关文章

windows实现VNC连接ubuntu22.04服务器

最近弄了一个700块钱的mini主机,刷了ubuntu22.04系统,然后想要在笔记本上通过VNC连接,这样就有了一个linux的开发环境。最后实现的过程为: 安装vnc服务器 安装 VNC 服务器软件: sudo apt update sudo apt install t…

【大数据技术基础 | 实验十二】Hive实验:Hive分区

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验步骤(一)启动Hadoop集群(二)用命令进入Hive客户端(三)通过HQL语句进行实验 六、实验结果七、实验心得 一、实验目的 掌握Hive分区的用…

leecode45.跳跃游戏||

跟正常的跳跃游戏差不多,每次都记录下一次可跳跃的最大距离,当前i值达到当前最大可跳跃距离时就继承下一次可跳跃最大距离,这个时候再将步数1 总体的贪心策略就是每次都在当前可跳跃范围内选择一个下一次可以覆盖更广的点进行跳跃 class So…

Matlab 二维矩形板模态和固有频率的Matlab有限元法实现

本文给出了尺寸为200mm x 500mm x 2mm的二维矩形板的前六个固有频率和模态振型的评估结果,假设是一扇门,在某些点上有运动限制,假设是门环和把手。在MATLAB中通过自学算法进行评估,并将结果与COMSOL模拟进行比较。网格&#xff0c…

QT:QListView实现table自定义代理

介绍 QListVIew有两种切换形式,QListView::IconMode和QListView::ListMode,通过setViewMode()进行设置切换。因为QListView可以像QTreeView一样显示树形结构,也可以分成多列。这次目标是将ListView的ListMode形态显示为table。使用代理&…

Vision-Language Models for Vision Tasks: A Survey 论文解读

摘要 大多数视觉识别研究在深度神经网络(DNN)训练中严重依赖于人工标注的数据,且通常为每个单一的视觉识别任务训练一个DNN,导致这种视觉识别范式既繁琐又耗时。为解决这两个挑战,近年来对视觉语言模型(VL…

Mesh路由组网

Mesh无线网格网络,多跳(multi-hop)网络,为解决全屋覆盖信号,一般用于家庭网络和小型企业 原理 网关路由器(主路由,连接光猫),Mesh路由器(子路由,…

【Golang】——Gin 框架中的表单处理与数据绑定

在 Web 应用开发中,表单是用户与服务器交互的重要手段。Gin 框架对表单处理提供了高效便捷的支持,包括数据绑定、验证等功能。在本篇博客中,我们将详细介绍如何使用 Gin 框架处理表单数据,涵盖基础操作与进阶技巧,帮助…