Docker启动一个Centos镜像,在docker中安装ifconfig和ssh
执行docker search centos 现在最流行的Linux嘛。查了下,排名第一的(STARS最多1882)官方版,就是你了
果断拿下, docker pull centos,看网速了静等拿下
其实我在一开始的Docker Quicky Start里面也pull过,但是不知道为什么失败了,换了SecureCRT顺利获取,不知道为什么。反正只是需要一个环境而已
好啦,看看成果,这下有镜像了,输入docker images
接下来启动一个呗, docker run -d c8a /bin/echo 'Hello World'
成功打出了一串乱码,想要看的话必须用docker logs来看,看我少打了参数docker很贴心提醒我了
但是logs要一个Container ID,那是个啥?打入docker ps查看一下
一片空白,这是怎么回事呢。。明明已经有了images了,run之后不是应该生成Container的嘛。
重新输入一段抄来的循环执行的命令之后再看
有了,写了一个后台一直会运行的命令,现在再来看看log
看到一堆hello world,好吧,这样我们就算大体成功了。
但是,我原本要一堆Container来部署集群,不能每个都运行一个二逼命令吧。
仔细查看了一下命令列表,爷爷的,原来docker ps 只是显示当前运行的Container。让我们来运行一下docker ps -a
看,以前的都在,我们就能在指定的Container上进行操作了哈哈哈。。
#运行命令
- #切换到docker内部
- docker-machine ssh default
- sudo -i
- #启动容器
- docker run -d -i -t <imageID> /bin/bash
这样就能启动一个一直停留在后台运行的Centos了。如果少了/bin/bash的话,Docker会生成一个Container但是马上就停止了,不会一致运行即使有了-d参数。
然后我们可以进入我们这个Centos
- docker attach <ContainerID>
进入Centos后,发现竟然没有ifconfig和ssh,网上例子很多参照着来
- ifconfig的安装,执行命令
- yum search ifconfig
2. 安装ifconfig
- yum install -y net-tools.x86_64
接下来只要启动就可以了
- yum install -y openssh-server
- #使用ssh-keygen命令来手动生成
- ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config - /usr/sbin/sshd -D
接下来就是常用的命令了,将端口映射到宿主机,我这里就是VM分配的linux系统。
#退出,但不停止容器
Ctrl+P+Q
#回到Docker下面,停止容器
docker stop <容器ID>
#提交当前容器到镜像
docker commit <容器ID> <NAME/VERSION>
#启动新容器,并且进行端口映射
docker run -itd -p 50001:22 <刚才提交的镜像ID> /bin/bash
好了,这样我们在windows下利用ssh工具访问宿主机的IP端口就可以访问到容器了
我这里就是192.168.99.100:50001
Docker启动一个Centos镜像,在docker中安装ifconfig和ssh的更多相关文章
- Docker启动一个Centos镜像
docker镜像的获取与使用 docker中使用centos7镜像 接着上文,我们下载完成一个Centos镜像之后,开始启动 #运行命令 docker run -d -i -t <imageID ...
- 在win10 docker启动的centos容器中安装nginx
我是在win10机器上搭建了一个docker,在docker启动了centos容器,在centos中安装nginx. 安装配置docker 直接在官网下载docker for windows:http ...
- CentOS 6.x 系统中安装原生 Hadoop 2
2020年整理博客发现原文地址已经失效,推荐学习地址厦门大学数据库实验室 本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6 ...
- Docker构建一个node镜像
0. 设置国内docker镜像源 进入Settings->Daemon->Advanced,添加如下配置. { "registry-mirrors": [ " ...
- Docker: docker 启动一个Nginx容器
本文演示从官方镜像仓库拉取一个nginx镜像并启动docker run -d –p 8800:80 nginx (同一个镜像,可以启动N个容器, 比如说,一个nginx服务,可以在这个docker主机 ...
- Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别
构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...
- Eucalyptus-利用镜像启动一个Centos实例
1.前言 使用kvm制作Eucalyptus镜像(Centos6.5为例)——http://www.cnblogs.com/gis-luq/p/3990795.html 上一篇我们讲述了如何利用kvm ...
- docker构建一个简易镜像
一 下载centos镜像 docker pull centos 二 启动镜像 [root@Centos-node3 ~]# docker run -it --name my_ng centos bas ...
- Docker 第一个HelloWorld镜像
Docker 创建第一个HelloWorld镜像: 创建Dockerfile FROM alpine CMD "echo" "Hello World!" 通过D ...
随机推荐
- WPF 实现测量显示文本长度
原文:WPF 实现测量显示文本长度 以工具类的方式实现: using System; using System.Windows; using System.Windows.Media; using S ...
- 的二分图poj2446
称号:id=2446">poj2446 意甲冠军:给定一个m*n矩阵,在有些地方坑,然后1*2本文叠加,反复.可以把出了坑的地方其它所有覆盖的话输出YES,否则NO 分析:有一道二分图 ...
- Cocos2d-x 3.1 一步一步地做改编
本文并不想谈论的屏幕改编或真理的概念.假设不知道cocos2d-x的,请先看这篇文章:http://www.cocoachina.com/gamedev/cocos/2014/0516/8451.ht ...
- win7(64bit)使用mingw64配置gtkmm
因为linux命令不熟悉,加上时间不充裕,仍然决定在win7_64bit下开发GUI程序,选择gtkmm是因为: 1. 在图形界面程序中,windows系统当之无愧GUI之王,用户友好性其他OS无法替 ...
- SourceTree 免注册使用
sourcetree安装的时候,需要注册.但是这个注册需要FQ,所以我们需要绕过注册 1. 找到目录:C:\Users\用户\AppData\Local\Atlassian\SourceTree 2. ...
- WPF 4 DataGrid 控件(基本功能篇)
原文:WPF 4 DataGrid 控件(基本功能篇) 提到DataGrid 不管是网页还是应用程序开发都会频繁使用.通过它我们可以灵活的在行与列间显示各种数据.本篇将详细介绍WPF 4 中 ...
- WPF数据模板的数据触发器的使用
<Window x:Class="CollectionBinding.MainWindow" xmlns="http://schemas.micros ...
- css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位
css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位 浏览器支持IE9+.FF4.0+.Chrome19+.Safari6+ calc()语法非常简单,就像我们小时候 ...
- Android零基础入门第59节:AnalogClock、DigitalClock和TextClock时钟组件
原文:Android零基础入门第59节:AnalogClock.DigitalClock和TextClock时钟组件 在前面一期,我们学习了DatePicker和TimePicker,在实际开发中其不 ...
- C#高性能大容量SOCKET并发(三):接收、发送
原文:C#高性能大容量SOCKET并发(三):接收.发送 异步数据接收有可能收到的数据不是一个完整包,或者接收到的数据超过一个包的大小,因此我们需要把接收的数据进行缓存.异步发送我们也需要把每个发送的 ...