docker之centos7容器常用命令和服务安装

一、前言

  以前我们如果想在windows环境下使用linux系统,最早的是一台主机上安装双机系统,再后来我们有了VMware,可以通过workstations虚拟化平台安装虚拟机。现在我们还可以通过docker安装linux容器,容器更轻量也更便捷。不过凡事都是两面性的,因为容器的轻量,所以linux虚拟机默认就有的很多服务和命令都是没有的。我们以centos7容器为例介绍centos7容器常用命令和服务的安装。我们首先拉取一个centos7最新版镜像文件并启动容器。

#拉取centos7镜像
[root@test ~]# docker pull centos:centos7
#创建centos7容器,run表示运行一个容器,-itd表示后台运行,–name设置容器名称,–restart=always表示容器随docker服务自启动
[root@test ~]# docker run -itd --name centos7 --restart=always centos:centos7 /usr/sbin/init
#登录容器
[root@test ~]# docker exec -it centos7 /bin/bash

二、centos7容器常用命令安装

1、ip命令安装

#安装命令前
[root@4167e92716bf /]# ip addr
bash: ip: command not found
#安装命令软件包
[root@4167e92716bf /]# yum install -y iproute
#安装命令后
[root@4167e92716bf /]# ip addr

inet 172.17.0.3/16 scope global eth0

2、netstat命令安装

  netstat、route、ifconfig等命令都是net-tools工具包里的命令。

#安装命令前
[root@4167e92716bf /]# netstat -tnpl
bash: netstat: command not found
#安装命令软件包
[root@4167e92716bf /]# yum install -y net-tools
#安装命令后
[root@4167e92716bf /]# netstat -tnpl

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 149/sshd

3、vim命令安装

[root@4167e92716bf /]# yum install -y vim

4、其他命令安装

  linux环境下命令安装相对简单,找不到的命令我们通过yum安装即可,有些命令软件包就是命令名称,有些是合集,通过百度查找到对应软件包名进行安装即可。

[root@4167e92716bf /]# yum install -y wget

三、centos7容器常用服务安装

1、sshd服务安装

  centos7容器默认没有安装和启动ssh服务的,如果我们希望远程登录容器,则需要安装并配置启动sshd服务。结合容器随docker服务启动,就可以实现远程连接docker了。

#安装sshd服务
[root@4167e92716bf /]# yum install -y openssh-server
#启动sshd服务
[root@4167e92716bf /]# systemctl start sshd
#设置开机自启动
[root@4167e92716bf /]# systemctl enable sshd

2、创建用户

  直接创建的centos7容器,默认是没有创建用户的,如果我们想要远程管理,还需要创建用户,用于登录验证。

[root@4167e92716bf /]# useradd wuhs
[root@4167e92716bf /]# passwd wuhs
Changing password for user wuhs.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

3、安装ssh客户端

  安装sshd服务只是用于远程管理,如果想从容器远程其他主机则需要安装ssh客户端。

[root@4167e92716bf /]# yum install -y openssh-clients

4、安装vsftpd服务

  直接yum安装vsftpd服务,通过systemctl管理服务启停。

[root@4167e92716bf /]# yum install -y vsftpd

5、安装httpd服务

  直接yum安装httpd服务,通过systemctl管理服务启停。

[root@4167e92716bf /]# yum install -y httpd

6、安装其他服务

  如果是yum安装的服务,我们可以自己安装;如果是linux环境下按步骤部署的我们也可以像虚拟机环境下一样正常部署安装。

[root@4167e92716bf local]# yum install -y lrzsz
[root@4167e92716bf local]# source /etc/profile
[root@4167e92716bf local]# java -version
java version “1.8.0_291”
Java™ SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot™ 64-Bit Server VM (build 25.291-b10, mixed mode)

四、QA

1、启动sshd服务的时候报错

  • 报错信息:Failed to get D-Bus connection: Operation not permitted
  • 报错原因:创建容器的时候未启用
  • 解决方案一:在创建CentOS 7容器时,使用"/usr/sbin/init"参数,容器会启动systemd作为其初始化进程,从而使容器能够像一个完整的操作系统一样运行,并能够管理和启动其他服务和进程。这个时候使用systemctl start sshd方式启动进程。
  • 解决方案二:使用sshd命令直接启动服务

[root@22ba481dca87 ssh]# /usr/sbin/sshd -D &

2、sshd命令启动服务的时候报错

  • 报错信息:Could not load host key: /etc/ssh/ssh_host_rsa_key…sshd: no hostkeys available – exiting.
  • 报错原因:缺少ssh的主机密钥文件
  • 解决方案:重新生成所有缺失的主机密钥文件,然后启动

[root@22ba481dca87 ssh]# ssh-keygen -A
ssh-keygen: generating new host keys: RSA1 RSA DSA ECDSA ED25519
[root@22ba481dca87 ssh]# /usr/sbin/sshd -D &

五、已启动容器添加映射端口

  凡事有利有弊,docker容器轻量便捷了,但是如果新部署了服务,监听了端口,并不能直接访问,需要进行端口映射。我们可以启动前先对考虑可能部署的服务做地址映射,但是计划赶不上变化总会存在需要后续增加的情况,这个时候就需要对已启动容器新增端口映射。

1、创建容器的时候指定端口映射

  新建容器的时候添加端口映射比较简单,使用-p host_port:docker_port参数指定映射关系即可,host_port表示主机上监听的端口,docker_port表示容器内部监听的端口。如果主机上启用了防火墙,我们还需要在防火墙上开通策略才可以实现远程访问。

[root@test ~]# docker run -itd -p 2222:22 --name centos7 --restart=always centos:centos7 /usr/sbin/init
5b420aeb7f2f907f3066c178c6c96b276b6f4bda9e0a9e228a9dcd4a4133d32c
在这里插入图片描述

2、已运行容器添加端口映射

  • 如果是已运行容器添加端口映射就比较麻烦些,停止docker,修改配置,然后重新启动docker服务和容器。需要修改config.v2.json、hostconfig.json配置文件增加端口映射。
    在这里插入图片描述

  • 对于已运行的容器,我们可能已经忘了容器存储的元数据目录名称(就是这一串哈希),我们可以查看每个哈希值目录下的hostname文件,以此确定对于需要修改的容器。实际上这一串哈希值的前10个字符就是容器的container id。
    在这里插入图片描述

  • 停止容器和docker服务,记得修改配置文件前一定要先停止docker服务,否则修改重启docker后会导致配置文件被默认配置覆盖。

(base) [root@test 3e4353876ab3716a1c83a7b62abfab26ef6db89f13254518a5250073f1d3105c]# docker stop centos7
(base) [root@test 3e4353876ab3716a1c83a7b62abfab26ef6db89f13254518a5250073f1d3105c]# systemctl stop docker

  • 配置文件是json格式,我们可以使用jq清晰查看内容,使用vim命令编辑json文件,编辑配置文件,参照现有格式添加端口映射内容。直接编辑不方便,当然我们也可以下载json文件到本地用工具编辑后上传。
(base) [root@test 3e4353876ab3716a1c83a7b62abfab26ef6db89f13254518a5250073f1d3105c]# jq '.' hostconfig.json 
{
..."NetworkMode": "default","PortBindings": {"22/tcp": [{"HostIp": "","HostPort": "2222"}]},...(base) [root@test 3e4353876ab3716a1c83a7b62abfab26ef6db89f13254518a5250073f1d3105c]# jq '.' config.v2.json ..."ExposedPorts": {"22/tcp": {}},..."Ports": {"22/tcp": [{"HostIp": "0.0.0.0","HostPort": "2222"}]},...

在这里插入图片描述- 验证json文件格式,配置修改完成后使用python -m json.tool工具校验配置是否正确,如果配置有误则会报错,如果格式正确则会输出显示文件内容。

(base) [root@test 3e4353876ab3716a1c83a7b62abfab26ef6db89f13254518a5250073f1d3105c]# python -m json.tool hostconfig.json

  • 验证配置文件无误以后,重新启动docker服务并检查监听端口和映射关系。
    在这里插入图片描述

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

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

相关文章

工业级加固平板丨亿道三防平板电脑丨安卓工业平板丨改善车队管理

在现代物流和运输行业中,车队管理是一个复杂而重要的任务。为了更好地管理车队,提高工作效率和减少成本,许多企业正在采用新技术和工具。其中,三防平板电脑作为一种功能强大且适应恶劣环境的设备,已经在车队管理中得到…

C++联合体详解!

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 大家伙新年快乐,今天我们来了解一下C联合体。 文章目录 1.联合体 1.1联合体的概念 1.2联合体的思想 1.3联合体的作用 1.3.1内存优化 1.3.2二进制数据操作 1.3.3类型转换 1.3.4解决特定问…

交叉熵损失函数基本概念及公式

Cross-Entropy Loss 1.二分类2. 对于多类别分类问题,其公式可以表示为:3. 公式深度挖掘解释——交叉熵损失函数公式中(log)的解释总结 交叉熵损失函数(Cross-Entropy Loss)是在机器学习和深度学习中常用的一…

Ainx-V0.2-简单的连接封装与业务绑定

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📗本文收录于Ainx系列,大家有兴趣的可以看一看 📘相关专栏Rust初阶教程、go语言基础系列…

【EAI 020】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

论文标题:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion 论文作者:Cheng Chi, Siyuan Feng, Yilun Du, Zhenjia Xu, Eric Cousineau, Benjamin Burchfiel, Shuran Song 作者单位:Columbia University, Toyota Research…

MATLAB知识点: unique函数 提取数组中的唯一值

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.4.5 集合运算 unique函数可用来提取数组中的唯…

Stable Diffusion 模型下载:majicMIX lux 麦橘辉耀 - V3

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

算法沉淀——位运算(leetcode真题剖析)

算法沉淀——位运算 常用位运算总结1.基础位运算2.确定一个数中第x位是0还是13.将一个数的第x位改成14.将一个数的第x位改成05.位图6.提取一个数最右边的17.删掉一个数最右边的18.异或运算9.基础例题 力扣题目讲解01.面试题 01.01. 判定字符是否唯一02.丢失的数字03.两整数之和…

LeetCode Python - 11.盛最多水的容器

文章目录 题目答案运行结果 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&a…

计网day1

RTT:往返传播时延(越大,游戏延迟) 一.算机网络概念 网络:网样的东西,网状系统 计算机网络:是一个将分散得、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功…

web 前端实现一个根据域名的判断 来显示不同的logo 和不同的标题

1.需求 有可能我做一个后台 web端 我想实现一套代码的逻辑 显示不同的公司主题logo以及内容,但是实际上 业务逻辑一样 2.实现 建一个store oem.ts 这个名为是 oem系统 oem.ts import { defineStore } from pinia;import { store } from /store;const oemDataLis…

并行计算导论 笔记 1

目录 并行编程平台隐式并行超标量执行/指令流水线超长指令字处理器 VLIW 内存性能系统的局限避免内存延迟的方法 并行计算平台控制结构通信模型共享地址空间平台消息传递平台对比 物理组织理想并行计算机并行计算机互联网络网络拓朴结构基于总线的网络交叉开关网络多级网络全连…

【MySQL基础】:深入探索DQL数据库查询语言的精髓(上)

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. DQL1.1 基本语法1.2 基础查询1.3 条件查询1.3 聚合函数 🌤️ 全篇…

中文GPTS使用秘籍,字节扣子Coze工作流使用全教程

大家好,我是斜杠君。今天和大家分享字节扣子Coze工作流创建和使用全教程,手把手教会你。 首先我们先来看一下如何创建一个工作流。 我们以创建这样一个工作流为例。这个工作流程的作用是:把用户输入的内容通过头条接口查询信息,把…

MySQL篇----第二十一篇

系列文章目录 文章目录 系列文章目录前言一、什么是乐观锁二、什么是悲观锁三、什么是时间戳四、什么是行级锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、…

【Tauri】(1):使用Tauri1.5版本,进行桌面应用开发,在windows,linux进行桌面GUI应用程序开发,可以打包成功,使用 vite 最方便

1,视频地址: https://www.bilibili.com/video/BV1Pz421d7s4/ 【Tauri】(1):使用Tauri1.5版本,进行桌面应用开发,在windows,linux进行桌面GUI应用程序开发,可以打包成功&…

第四节 zookeeper集群与分布式锁

目录 1. Zookeeper集群操作 1.1 客户端操作zk集群 1.2 模拟集群异常操作 1.3 curate客户端连接zookeeper集群 2. Zookeeper实战案例 2.1 创建项目引入依赖 2.2 获取zk客户端对象 2.3 常用API 2.4 客户端向服务端写入数据流程 2.5 服务器动态上下线、客户端动态监听 2…

mysql经典4张表问题

1.数据库表结构关联图 2.问题: 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数3.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4、查询名字中含有"风"字的学生信息5、查询课程名称为"数学"&…

VMware虚拟机安装openEuler系统(二)(2024)

下面我们进行openEuler系统的一些简单配置。 1. 开启openEuler系统 在VMware Workstation Pro虚拟机软件中找到安装好的openEuler操作系统虚拟机并开启。 等待开启。 2. 安装配置 进入后选择第一个“Install openEuler 20.03-LTS”。 3. 选择系统语言 为虚拟机设置系统语言…

JVM垃圾回收机制及调优工具Arthas的使用

文章目录 1、JVM垃圾回收机制1.1 针对的内存区域1.2 怎么判断对象是否可以被回收?1.3 垃圾收集算法1.3.1 **标记-清除(Mark-Sweep)**1.3.2 复制(Copying)1.3.3 标记-整理(Mark-Compact)1.3.4 分…