Docker学习笔记7

启动一个运行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 makecacheyum 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 --helpUsage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]Import the contents from a tarball to create a filesystem imageAliases:docker image import, docker importOptions:-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 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_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 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0valid_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 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever

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

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

相关文章

【Vue】axios发请求下载excel--20230630

1.关键点&#xff1a; blob乱码传参 2.参考资料&#xff1a;处理blob文件流和乱码问题 https://blog.csdn.net/qq_41512902/article/details/125680531 https://blog.csdn.net/qq_38804584/article/details/109238794 3.我的代码&#xff1a;axios发请求下载excel js代…

python 深度学习 解决遇到的报错问题

目录 一、解决报错ModuleNotFoundError: No module named ‘tensorflow.examples 二、解决报错ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 三、安装onnx报错assert CMAKE, ‘Could not find “cmake“ executable!‘ 四、ImportError: cannot import na…

ARM-SWI 和未定义指令异常中断处理程序的返回(七)

文章目录 处理流程示例代码实现SWI未定义指令 附录源码 处理流程 SWI 和未定义指令异常中断是由当前执行的指令自身产生的&#xff0c;当 SWI 和未定义指令异常中断产生时&#xff0c;程序计数器的 PC 的值还未更新&#xff0c;它指向当前指令后面第 2 条指令&#xff08;对于…

【算法题】动态规划中级阶段之最长回文子串、括号生成、跳跃游戏

动态规划中级阶段 前言一、最长回文子串1.1、思路1.2、代码实现 二、括号生成2.1、思路2.2、代码实现 三、跳跃游戏 II3.2、思路3.2、代码实现 总结 前言 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种解决多阶段决策过程最优化问题的方法。…

香港大学推出创新科技教育基金,拟支持Web3和生成式AI等领域教学

区块链技术是近年来备受关注的领域之一,其应用范围已经涵盖了金融、医疗、物流等众多行业。而随着区块链技术的不断发展和完善&#xff0c;越来越多的企业和机构开始将其应用到实际生产和业务中。作为其中一个重要的应用领域&#xff0c;金融领域也成为了区块链技术的重要应用场…

3-css高级特效-1

01-平面转换 简介 作用&#xff1a;为元素添加动态效果&#xff0c;一般与过渡配合使用 概念&#xff1a;改变盒子在平面内的形态&#xff08;位移、旋转、缩放、倾斜&#xff09; 平面转换也叫 2D 转换&#xff0c;属性是 transform 平移 transform: translate(X轴移动距…

Linux——进程通信之共享内存

目录 一. 回顾上文 二.共享内存 1.定义 2.特点&#xff1a; 3.实现步骤&#xff1a; 如下为成功链接共享内存使用权的完整步骤&#xff1a; 4.函数介绍 4.1shmget函数 4.1.2参数介绍 4.2ftok函数&#xff1a; 4.2.1参数介绍 关于ftok(); shmget();函数的代码实验…

【吃透网络安全】2023软考网络管理员考点网络安全(三)计算机系统安全评估

涉及知识点 计算机系统安全评估准则&#xff0c;计算机系统安全评估历史&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈&#xff0c;这边提供个快捷入口&#xff01; 第一节…

Java版工程项目管理系统源码 工程项目源码

数 据 库&#xff1a; MySQL 开发语言&#xff1a; Java 开发工具&#xff1a; MyEclipse 源码类型&#xff1a; WebForm 以甲方项目管理为中心&#xff0c;包括项目启动、计划、执行、控制与收尾阶段的全生命周期管理&#xff0c;并对范围、预…

【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

文章目录 一 实现功能&#xff08;1&#xff09;管理员功能&#xff08;2&#xff09;读者功能 二 数据流图三 概念结构设计四 文件目录五 源码&#xff1a;main.py六 运行截图 一 实现功能 &#xff08;1&#xff09;管理员功能 一个管理员编号对应一个密码&#xff0c;且需…

drone、gogs、docker与项目集成实现自动化部署

目录 前言项目目录结构目录结构测试文件 文件内容Dockerfilerun.shdrone.yml 测试打包部署中查看容器访问项目成功 常见问题Gogs 推送 URL 被解析到默认禁用的本地网络地址1、drone登录没有权限2、cannot ping the remote server3、推送代码以后不能自动clone4、maven编译报错F…

网络安全合规-网络安全工程师(一)

网络安全工程师的工作种类很多&#xff0c;当前这个图片说明了具体的工程师的工作种类有哪些&#xff0c;列举了一下。 互联网时代网络及科技迅速发展&#xff0c;随之而来的首要问题就是网络安全&#xff0c;因为已经出现的网络问题带来了巨大的经济损失&#xff0c;甚至各种…