docker使用及Dockerfile编写

docker 基础使用

Linux安装docker

# Linux安装docker服务
sudo apt install docker.io# 把普通用户加入到docker组中(解决docker ps权限问题,$USER通常为用户名)
sudo gpasswd -a $USER docker
newgrp docker

docker 环境路径配置

# 修改系统环境变量
export PATH="/new/path:$PATH"# 单次生效
source ~/.bashrc# 永久生效(注意多个path用 : 分隔)
export PATH="/new/path:$PATH"

docker 启动和基础使用

1、下载镜像
docker pull ubuntu:18.042、启动 docker
docker run -d -P -it --privileged ubuntu:18.04
# 使用 -d 表示后台运行(不使用-d,退出后docker就stop掉了),需要使用 docker exec -it 重新进入docker
docker exec -it test /bin/bash# -v 表示作映射(共享),本机或者docker中修改对于双方都可见(通常用于自动化测试环境调试)
docker run -d -P -it --privileged -v /dev:/dev -v /home/demo/autowork:/home/test --name test3、docker 相关操作
# 向 Docker 容器拷贝文件:
docker cp <本地文件路径> <容器名或 ID>:<目标路径>

docker常用命令

# 安装
apt install docker.io
# service 命令的用法
sudo service docker start# systemctl 命令的用法
sudo systemctl start docker# 查看是否配置成功
docker info# 列出本机正在运行的容器
docker ps# 列出本机的镜像
docker images# 列出本机所有容器,包括终止运行的容器
docker container ls --all# 重新运行exit的容器
docker start -ia 容器id #如果执行docker run 会提示容器已经存在错误docker exec -it dd903b670192 /bin/bash
终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。
docker container rm [containerID]# 停止并删除docker
docker stop id
docker rm id
docker rmi id卸载docker
# 查询相关软件包
dpkg -l | grep docker
# 删除这个包
sudo apt remove --purge docker.io

本地更新docker镜像并上传服务器

# 修改镜像以后可以cmmit的方式上传,本地提交
docker commit -m 'update xxx' containerID  ubuntu:18.04
# 登录harbor
docker login -u user -p passwd xxx
# 上传镜像
docker push xxx

常见问题解决方案

# 解决docker ps等waring问题
sudo su
chmod 777 /home/jenkins/.docker/# docker环境缺少中文集:导致python run.py运行失败
安装中文包:https://zhuanlan.zhihu.com/p/165961076

docker中 使用pip.conf进行重定向
文件路径:~/.pip/pip.conf

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/[install]
trusted-host = mirrors.aliyun.com

参考文档

  • Docker — 从入门到实践:https://docker-practice.github.io/zh-cn/install/ubuntu.html
  • Docker常用命令大全(万字详解):https://cloud.tencent.com/developer/article/2093710
  • Docker介绍和基础使用:https://blog.csdn.net/qq_39611230/article/details/108641842

Dockerfile编写 制作镜像

dockerfile实际上就是指定需要往镜像中安装的工具或者库,需要什么就apt-get、pip、或者其他方式进行安装即可

基础镜像

制作镜像,在有dockerfie文件的文件夹下执行:docker build . -t xxx

FROM ubuntu:20.04WORKDIR /root## apt sources
RUN apt-get update## using mirrors.aliyun
# RUN sed -i -e 's/archive.ubuntu/mirrors.aliyun/' /etc/apt/sources.list \
#     && cat /etc/apt/sources.list \
#     && apt-get update## skip timer
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai## apt-get basic depends
RUN apt-get -y install    wget vim curl cmake git libssl-dev openssl bzip2 libbz2-dev \&& apt-get -y install socat ssh gawk net-tools libncursesw5 jq sshpass iputils-ping telnet zip unzip lcov \&& apt-get -y install tree zabbix-agent locate git-core libncurses5 libncurses5-dev \&& apt-get -y install build-essential \&& apt-get -y install python3 python3-pip \&& apt-get -y install openjdk-8-jdkRUN set -x \&& apt-get -y update \&& apt-get -y install \git \wget \vim \&& apt-get clean && rm -rf /var/lib/apt/lists \&& update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 \&& : # last line# copy files and export to $PATH
COPY XXX.tar.gz /root
RUN tar -xzf /root/XXX.tar.gz \&& rm /root/XXX.tar.gz
ENV PATH="/root/install/bin:${PATH}"# install other depends use mirrors
RUN touch /etc/pip.conf \&& echo "[global]" > /etc/pip.conf \&& echo "index-url = https://mirrors.aliyun.com/pypi/simple/" >> /etc/pip.conf \&& echo "[install]" >> /etc/pip.conf \&& echo "trusted-host = mirrors.aliyun.com" >> /etc/pip.conf
RUN pip3 install --upgrade pip# install pip libs
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt# set up ssh keys and config
COPY id_rsa id_rsa.pub config authorized_keys /root/.ssh/
RUN chmod 700 /root/.ssh/id_rsa.pub /root/.ssh/id_rsa /root/.ssh/authorized_keys### maybe need copy .gitconfig and proxy.conf # ln -sf
RUN ["ln", "-sf", "/usr/bin/python3", "/usr/bin/python"]# Install repo tool
RUN set -x \&& curl https://storage.googleapis.com/git-repo-downloads/repo > /bin/repo \&& chmod a+rx /bin/repo

.gitconfig配置

[alias]gst = git statusgbr = git branch
[user]email = xxxname = xxx[color]ui = autostatus = auto

参考:https://blog.csdn.net/tsq292978891/article/details/89314127

参考文档

  • Docker — 从入门到实践:https://docker-practice.github.io/zh-cn/image/dockerfile/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust高性能日志库tklog0.0.8—支持mod设置参数

tklog是rust高性能结构化日志库&#xff0c;支持同步日志&#xff0c;异步日志&#xff0c;支持自定义日志的输出格式&#xff0c;支持按时间&#xff0c;按文件大小分割日志文件&#xff0c;支持日志文件压缩备份&#xff0c;支持官方日志库标准API&#xff0c;支持mod独立参数…

怎么将文件免费扫描?这篇文章教你几个文件扫描方法

随着时间的流逝&#xff0c;我们所珍藏的纸质文件可能会面临破损和丢失的风险。 为了确保这些宝贵的资料得到妥善保管&#xff0c;将它们转换为电子格式并存储于电脑中无疑是一个明智之举。 那么&#xff0c;我们应当如何将这些纸质资料转换为易于管理和访问的电子文档呢&…

CMake基础教程

用法 cmake -B build // 配置&#xff0c;在源码目录用 -B 直接创建 build 目录并生成 build/Makefile cmake --build build -j4 // 构建&#xff0c;Linux会调用make&#xff0c;Windows会调用devenv.exe cmake --version 定义 -DCMAKE_INSTALL_PREFIX/opt/openvdb-8.0 /…

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 贝蒂的主页&#xff1a;Betty’s blog 1. 泛型编程 首先让我们来思考一个问题&#xff0c;如何实现一个交换函数&#x…

企业有必要使用OVSSL证书吗?

在数字化时代&#xff0c;SSL证书不仅仅是一种技术保障&#xff0c;它更是企业线上服务的重要组成部分。企业级OVSSL证书以其独特的优势&#xff0c;为企业带来了多重好处。 包含以下几点&#xff1a; 1、增强信任度&#xff1a;OV SSL证书在颁发前会对组织的身份进行验证&…

找出一个整型数组中的元素的最大值

这个问题在之前的文章中曾用其他方法解决&#xff0c;现在用类来处理&#xff0c;读者可以比较不同方法的特点。 编写程序&#xff1a; 运行结果&#xff1a; 程序分析&#xff1a; 程序看起来比较长&#xff0c;其实并不复杂&#xff0c;它包括以下3部分&#xff1a;…

Redis 基本配置

Redis的配置文件通常位于 /etc/redis/redis.conf。以下是一些常见的Redis配置选项和它们的说明&#xff1a; 基本配置 1. 绑定地址 bind 127.0.0.1默认情况下&#xff0c;Redis只监听本地接口。如果需要远程访问&#xff0c;可以修改成bind 0.0.0.0&#xff0c;不过这会带来…

GPT-5的未来:技术飞跃与社会影响

文章目录 GPT-5的未来&#xff1a;技术飞跃与社会影响技术上的飞跃GPT-5在技术上将包括几个重要的进步&#xff1a;对工作和日常生活的影响新应用场景和创新可能性挑战和应对策略面向未来的准备结语 GPT-5的未来&#xff1a;技术飞跃与社会影响 在美国达特茅斯工程学院周四公布…

生产实习Day13 ---- 神经网络模型介绍

文章目录 传统的神经网络模型注意力机制的引入注意力机制的本质Encoder-Decoder 框架注意力机制在 Encoder-Decoder 中的应用Self-Attention 机制Transformer 模型注意力机制的优势总结 传统的神经网络模型 在深度学习中&#xff0c;传统的神经网络模型&#xff0c;如循环神经…

【离散数学】图的随机生成和欧拉(回)路的确定(c语言实现)

实验要求 变量定义 因为如果我们使用局部变量&#xff0c;每一个函数都会使用这些变量&#xff0c;会让函数的参数越变越多。所以我们定义全局变量&#xff0c;这样就不用在参数中调用了。 #define MAX 100 int arrMap[MAX][MAX] { 0 };//图的矩阵 int degree[MAX] { 0 };…

[职场] 提升学历考研再就业有必要吗 #其他#知识分享

提升学历考研再就业有必要吗 有很多人觉得自己学历不够高&#xff0c;求职第一关可能就通过不了。因此想要继续攻读&#xff0c;最近有人问小编提升学历考研有必要吗&#xff1f;“硕士学历和三年的工作经验哪个更重要?” 这个还是要针对具体岗位而言。综合类型的岗位往往不需…

免费分享:2000-2020年中国长时间序列夜间灯光数据集(附下载方法)

夜间灯光数据集直观反映了地表夜间灯光亮度&#xff0c;进而揭示了人类活动强度&#xff0c;为分析城市扩张、人口迁移、经济发展等提供了连续、全面的视角&#xff0c;有助于深入理解中国城市化的历史进程和未来趋势。 数据简介 基于DMSP/OLS第四版非辐射定标夜间年平均灯光强…

【HW必备】用友NC-Cloud存在17处漏洞合集

漏洞简介 NC Cloud是用友公司推出的大型企业数字化平台。支持公有云、混合云、专属云的灵活部署模式。NC Cloud完全基于云原生架构&#xff0c;技术先进、性能稳定、自主安全可控&#xff0c;支撑大中型以及超大型集团企业N层多site混合云部署方案&#xff0c;支持整个系统高可…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第47课-动态切换内嵌blender展厅的壁画

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第47课-动态切换内嵌blender展厅的壁画 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编…

MySQL数据库(四):视图和索引

在数据库管理中&#xff0c;视图和索引是两种关键工具&#xff0c;它们各自发挥独特的作用以优化数据查询和管理。视图通过简化复杂查询、提高数据安全性和提供数据抽象&#xff0c;帮助用户轻松访问数据。而索引则通过加速查询、确保数据唯一性以及优化排序和分组操作&#xf…

哪个牌子充电宝好?好用充电宝排行榜!精选充电宝排行榜

在如今这个科技飞速发展的时代&#xff0c;充电宝已然成为我们日常生活中不可或缺的伴侣。无论是出差旅行&#xff0c;还是日常通勤&#xff0c;我们都离不开它为我们的电子设备保驾护航。然而&#xff0c;面对市场上琳琅满目的充电宝品牌&#xff0c;您是否感到眼花缭乱&#…

【C++PCL】点云处理Kd-tree邻域搜索

作者:迅卓科技 简介:本人从事过多项点云项目,并且负责的项目均已得到好评! 公众号:迅卓科技,一个可以让您可以学习点云的好地方 重点:每个模块都有参数如何调试的讲解,即调试某个参数对结果的影响是什么,大家有问题可以评论哈,如果文章有错误的地方,欢迎来指出错误的…

【数学】1×2×3×...×2007×2008结果的末尾有几个连续的零?

题目 1 2 3 ⋯ 2007 2008 1\times 2 \times 3\times \dots \times 2007 \times 2008 123⋯20072008结果的末尾有几个连续的零? 公式推导 如果 K 1 2 3 ⋯ ( N − 1 ) N M 0...0 ⏞ L K1\times 2 \times 3\times \dots \times (N-1) \times NM\overbrace{0...0}^…

ONLYOFFICE 桌面编辑器 8.1 强势来袭:解锁全新PDF编辑、幻灯片优化与本地化体验,立即下载!

目录 一、轻松编辑PDF文件 1.1 编辑文本 1.2 添加、旋转和删除页面 1.3 插入和修改对象 1.4 添加注释和标注 1.5 切换编辑或查看模式 1.6 创建和填写表单 二、用幻灯片版式快速修改幻灯片 2.1 选择或创建幻灯片版式 2.2 应用幻灯片版式 2.3 修改幻灯片版式 2.4 使用…

[经验] candy是什么意思英语翻译 #笔记#其他#职场发展

candy是什么意思英语翻译 1、candy的意思 Candy是英语中的一个词汇&#xff0c;意思是糖果、糖果制品。Candy意为果脯的意思也不是很常见。 糖果是一种富含糖分的食品&#xff0c;主要由砂糖、粘合剂和食用色素等组成。糖果的种类可以很多&#xff0c;有硬糖、软糖、巧克力、…