Docker学习笔记7

news2024/10/2 20:31:59

启动一个运行httpd服务的容器:

docker run -it --name=c3 centos:latest /bin/bash

在容器中安装apache服务:

yum install -y httpd

在这个过程中遇到一个问题:

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

解决方法是:

cd /etc/yum.repos.d/


sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*


yum makecache


yum update -y
yum -y install httpd

说明:CentOS已经停止运维的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期缩短,于 2021 年 12 月 31 日停止更新并停止维护(EOL),更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要将镜像从 mirror.centos.org 更改为 vault.centos.org

把容器打包,然后导入为容器镜像。

export:  Export a container's filesystem as a tar archive

import:  Import  the contents from a tarball to create a filesystem image.

基于容器生成容器镜像:

docker export -o centos-httpd.tar c3

导出一个正在运行的容器。

docker import -m httpd centos-http.tar centos-httpd:v1

我们再查阅下docker import的帮助文档:

[root@vm1 ~]# docker import --help

Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Import the contents from a tarball to create a filesystem image

Aliases:
  docker image import, docker import

Options:
  -c, --change list       Apply Dockerfile instruction to the created image
  -m, --message string    Set commit message for imported image
      --platform string   Set platform if server is multi-platform capable
[root@vm1 ~]#

说明:

1)-m string: -m 后面的字符串不需要加引号,直接写字符串信息即可。

2)docker import  [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

docker import后面跟选项,然后是file,就是tar包文件,然后后面是仓库也就是镜像容器名,然后后面是tag标签的内容。

 然后查看下这个镜像:

[root@vm1 ~]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
centos-httpd   v1        a769afc16a9e   4 minutes ago   351MB
centos         latest    5d0da3dc9764   21 months ago   231MB
[root@vm1 ~]#
[root@vm1 ~]# docker image ls
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
centos-httpd   v1        a769afc16a9e   5 minutes ago   351MB
centos         latest    5d0da3dc9764   21 months ago   231MB
[root@vm1 ~]#
[root@vm1 ~]#

history:  Show the history of an image.

显示镜像历史,-m 可以显示镜像被修改了多少次。

[root@vm1 ~]# docker history centos-httpd:v1
IMAGE          CREATED         CREATED BY   SIZE      COMMENT
a769afc16a9e   6 minutes ago                351MB     httpd
[root@vm1 ~]#

 

说明:这个COMMENT列,就是-m选项得到的结果。

 再启动一个容器:

docker run -it --name c4 centos-httpd:v1 /bin/bash

然后在这个c4容器里面启动httpd:

httpd -k start

然后再进行测试:

curl http://localhost

我们把一个正在运行的容器导出成为一个tar包,然后将tar包生成一个镜像。

然后以后只要把这个镜像迁移到新的机器上,然后运行容器。并得到最新的配置。不再需要进行部署工作。大大地简化我们的工作。

查看容器IP地址方法:

说明:容器默认连接的网桥。 网桥,其实也就是交换机。

运行容器,到容器中通过ip a查看容器的IP地址:

[root@34fff4aa78a7 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

容器的IP地址由docker0网桥分配。

该地址是动态分配的。

[root@vm1 ~]# docker exec -it c3 /bin/bash
[root@b5798b7a99a3 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

inspect: Return low-level information  on Docker Object.

容器就属于docker object(docker 对象)。inspect可以看到容器的所有信息。

docker inspect c2
"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "bf746123c6c7b4bbc85ac0f29ff78c02eb524838112bd13191d011cf850b9483",
                    "EndpointID": "6f991abf587fa673ff8ccbf718981cd2869ac0b15bf691772736a84252721fc1",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }

其中Gateway:网关。

IPAddress:172.17.0.3就是容器的IP地址。

第三种方法:

exec :  Run  a command in a running container(在一个正在运行的容器中运行一个命令。

docker exec c2 ip a

在一个正在运行的容器c2中运行ip a命令。

[root@vm1 ~]# docker exec c2 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

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

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

相关文章

关于PHP调用openAI chatGPT一些问题

我是直接使用gpt生成的curl代码区调用的 1&#xff1a;windows可能出现代理访问问题&#xff0c;报443端口问题 解决办法&#xff1a;开启代理后&#xff0c;需要到设置 确认这里打开状态 在curl请求里面加上对应的代码 curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1&qu…

java spring cloud 企业工程项目管理系统源码-全面的工程项目管理

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈&#xff0c;内卷严重&#xff0c…

企业运维 | NFS、Samba服务在Docker容器环境中快速搭建部署实践

欢迎关注「全栈工程师修炼指南」公众号 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xff0c;莫待无花空折枝。 ” 作者主页&#xff1…

chatgpt赋能python:Python能自举吗?

Python能自举吗&#xff1f; Python是一门高级编程语言&#xff0c;由Guido van Rossum于1989年开发而来。Python被广泛用于Web开发、数据分析、人工智能等领域。因为Python语法简洁易懂&#xff0c;易于学习&#xff0c;许多人都称其为“入门语言”。 那么问题来了&#xff…

Spring Cloud——演进与应用的分布式系统开发利器

&#x1f338;作者简介&#xff1a;花想云&#xff0c;目前大二在读 &#xff0c;C/C领域新星创作者、运维领域新星创作者、CSDN2023新星计划导师、CSDN内容合伙人、阿里云专家博主、华为云云享专家 &#x1f338;专栏推荐&#xff1a;C语言初阶系列 、C语言进阶系列 、C系列、…

Linux之CentOS 7.9部署Oracle 11g r2_p13390677_112040最终版简易安装实测验证(桌面模式)

前言&#xff1a; Linux之CentOS 7.9部署Oracle 11g r2最终版安装实测验证&#xff08;桌面模式&#xff09; 介于前段时间的Windows以及linux无桌面模式环境&#xff0c;之前的linux oracl源包因缺失会存在报错现象&#xff0c;这次主要以oracle 11gr2更新包来记录下部署方式&…

不挂脖、不入耳,南卡NANK-OE骨传开放式蓝牙耳机

蓝牙耳机几乎成为和手机相同的EDC设备&#xff0c;无论是在工作还是通勤过程&#xff0c;无论是娱乐还是线上办公&#xff0c;随身携带的蓝牙耳机都能提供更舒适、更便捷的听觉和通话体验。 目前主流的蓝牙耳机有头戴式、入耳式和骨传耳机三类&#xff0c;考虑到使用的便携性普…

JavaScript:一门强大的脚本语言,掌握它,开启前端开发之路

目录 一、JavaScript的发展历史背景 二、JavaSxript的组成 三、javascript的基本特点 四、javascript的特性 五、Javascript的使用方式 六、JavaScript与Java的区别 七、JavaScript与JScript的区别 一、JavaScript的发展历史背景 JavaScript的发展历史可以追溯到20世纪9…

4 带你学MATLAB图像处理关键技术(matlab代码)

学习目标&#xff1a;学习图像处理关键技术知识点 %% 获取RGB图像中具体的3个像素点的像素值 clear all; RGBimread(peppers.png); r[12 23 36]; c[35 40 60]; pimpixel(RGB,r,c) %% 获取任意一点的像素值 非常方便 clear all; close all; imshow(peppers.png); himpixelin…

生产模块-多计量单位防坑提示

文章目录 一、概述二、数据案例2.1、物料主数据&#xff1a;2.2、业务数据准备2.3、库存数据查看2.3.1库存数据&#xff1a;基本计量单位&#xff1a;KG库存2.3.2、辅助单位单位&#xff1a;EA库存2.3.3、出库操作&#xff1a;以562方式为例场景1&#xff1a;场景2&#xff1a;…

进阶课程1:jvm内存模型

目录 JVM内存结构转换总结一下 JVM整体结构线程栈 JVM栈内存结构栈帧操作数栈局部变量表 JVM堆内存结构堆内存非堆内存 JMM内容&#xff1a;讲解JMM的三大特性1.原子性2.可见性3.有序性 视频 JVM内存结构 JVM内部由线程栈和堆内存组成。 简单描述就是我们的原生类型的局部变量…

Redis学习基础篇

目录 初识Redis 认识NoSQL 关联的 非关联的​编辑 认识Redis 安装Redis 1.1.安装Redis依赖 1.2.上传安装包并解压 该目录以及默认配置到环境变量&#xff0c;因此可以在任意目录下运行这些命令。其中&#xff1a; 图形化工具下载&#xff1a;Releases lework/RedisDe…

什么是 CSR,SSR,SSG 渲染

在Web开发中&#xff0c;网页渲染是一个重要的过程&#xff0c;它关系到网页的渲染速度和SEO排名&#xff0c;下面列举三种常见的网页渲染方式。 一、什么是浏览器端渲染 (CSR) CSR&#xff08;Client-Side Rendering&#xff09;是指将网页的内容生成和渲染都放在客户端&…

什么是真正的骨传导耳机,介绍几款高性价比的骨传导耳机

随着越来越多的人喜欢户外运动&#xff0c;骨传导耳机也逐渐被人们所熟知。骨传导耳机是通过颅骨和内耳传递声音到听觉中枢&#xff0c;所以听感相对较好&#xff0c;不会对耳朵造成任何损伤&#xff0c;因此在户外运动中使用骨传导耳机是一个很好的选择。接下来我会给大家介绍…

弟弟高考考了673分姐姐哭了一小时,大V竟然说是悲哀

大家好&#xff01;我是老洪。 6月23日起&#xff0c;全国各地高考分数线陆续公布中&#xff0c;老洪也一直在关注着。 时常看到有一些分享高考成绩的话题出现在热搜榜上。 比如老洪昨天提到的 女生高考712分查完分就睡觉了 复读女生涨61分坐地嚎啕大哭 女生发烧考618分挨个房间…

Linux——FTP文件传输服务

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。 个人主页&#xff1a;小李会科技的…

音视频BUG学习

找Bug流程 1、首先看出现概率是偶现还是必现 2、如果是必现&#xff0c;则复现整个bug过程&#xff0c;看Bug是否出现 如果是偶现&#xff0c;则分析问题视频 3、 问题一 【欧立】【远程抓拍】安卓-远程抓拍的视频&#xff0c;下载到手机本地相册&#xff0c;声音慢放 一、额…

【前端笔记】如何更新项目依赖

Node 软件包管理器&#xff08;NPM&#xff09;提供了各种功能来帮助你安装和维护项目的依赖关系。 由于错误修复、新功能和其他更新&#xff0c;依赖关系可能会随着时间的推移而变得过时。你的项目依赖越多&#xff0c;就越难跟上这些更新。 有时&#xff0c;新的软件包并不…

vm安装使用centos-7安装linux

1. 安装源&#xff0c;选择默认 2. 将网络和主机名&#xff08;以太网&#xff09;打开 3. 设置DHCP的租约 注&#xff1a;如果修改不了那么点击更改设置即可 4. 服务端口号&#xff1a;22 5. 常见报错以及解决方法 6. 安装目录 7. ip位置 8. 换源步骤&#xff08;乌班图的版…

machine code中的条件控制control flow和switch语句,循环Loop

上篇写了machine code基本知识概念&#xff0c;这篇再总结一下其中的流控制、条件判断&#xff0c;循环等实现。 一段machine code引出 在machine code中&#xff0c;通场使用jmp指令来跳转到某个代码块。比如一个机器码可能长这样&#xff1a; decision:subq $8, %rsptestl…