当前位置: 首页 > news >正文

Linux云服务器docker使用教程

诸神缄默不语-个人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. 将主机中的文件复制到容器里
  • 本文撰写过程中参考的其他网络资料

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 的文件,内容如下:

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。

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

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

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

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.lryc.cn/news/489306.html

相关文章:

  • 如何从android的webview 取得页面上的数据
  • VTK知识学习(12)- 读取PNG图像
  • Springboot项目搭建(3)-更改用户信息与文件上传
  • Docker1:认识docker、在Linux中安装docker
  • python成绩分级 2024年6月python二级真题 青少年编程电子学会编程等级考试python二级真题解析
  • android 如何获取当前 Activity 的类名和包名
  • Spring Boot 项目 myblog 整理
  • uniapp 城市选择插件
  • 测试工程师如何在面试中脱颖而出
  • Mesh路由组网
  • LeetCode131:分割回文串
  • 详细解析 devmem 命令:在 Linux 系统中直接访问内存的利器
  • [Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
  • 【前端知识】nodejs项目配置package.json深入解读
  • XGBOOST算法Python实现(保姆级)
  • JDK、MAVEN与IDEA的安装与配置
  • 输出比较简介
  • 什么是反向 DNS 查找以及它的作用是什么?
  • 集群聊天服务器(13)redis环境安装和发布订阅命令
  • [ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案
  • Python Matplotlib 安装指南:使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装
  • DimensionX 部署笔记
  • django从入门到精通(五)——表单与模型
  • C语言Day 03 学习总结
  • kafka中是如何快速定位到一个offset的
  • 视频对接rtsp协议学习
  • 【系统架构设计师】真题论文: 论企业信息化规划的实施与应用(包括解题思路和素材)
  • 【ARM Coresight OpenOCD 系列 6.1 -- JTAG Commands】
  • 开源许可协议
  • 241121学习日志——[CSDIY] [InternStudio] 大模型训练营 [11]