博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker启动一个Centos镜像
阅读量:2388 次
发布时间:2019-05-10

本文共 2257 字,大约阅读时间需要 7 分钟。

新开一年,迈入的大门,所以选择从开始,好歹也得有的集群环境吧

好了,我们开始,从官网下载Docker安装版,原谅我懒得配系统,直接window上的:

其实就是github上拿就行了,安全来说,不拿最新的哈哈

直接安装,全安装就行了。初学者,不要讲究太多,钻太深也不能体会,最多记得个名词

安装之后就这三个货。 VM VirtualBox,就是虚拟机上面会有装好的Linux系统,很贴心的Docker也已经安装在这个linux上了

其实说白了,Docker就是只能在linux上跑

好了,接下来直接点击左边那个货,快速启动Docker,其实就当是一个访问linux的界面就行。

第一次可能会启动失败,重启电脑就行,如果还有问题就访问官网,可能是windows版本,或者端口限制,或者虚拟机没有起来等问题

反正我没有遇到。哇哈哈哈哈,人品也很重要啊。

好了,反正我们有了一台如上IP的Linux了,先Ping一下看看网络通不通,这个最关键,还要靠它下镜像撒。

好了,完全没有问题。飞咯,不是很喜欢这个界面还是喜欢SecureCRT,切换(默认的用户名:docker 密码:tcuser)

执行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要一个 ID,那是个啥?打入docker ps查看一下

一片空白,这是怎么回事呢。。明明已经有了images了,run之后不是应该生成Container的嘛。

重新输入一段抄来的循环执行的命令之后再看

有了,写了一个后台一直会运行的命令,现在再来看看log

看到一堆hello world,好吧,这样我们就算大体成功了。

但是,我原本要一堆Container来部署集群,不能每个都运行一个二逼命令吧。

仔细查看了一下命令列表,爷爷的,原来docker ps 只是显示当前运行的Container。让我们来运行一下docker ps -a

看,以前的都在,我们就能在指定的Container上进行操作了哈哈哈。。

#运行命令

[plain] 
 
 
 
  1. #切换到docker内部
  2. docker-machine ssh default
  3. sudo -i
  4. #启动容器
  5. docker run -d -i -t <imageID> /bin/bash  

这样就能启动一个一直停留在后台运行的Centos了。如果少了/bin/bash的话,Docker会生成一个Container但是马上就停止了,不会一致运行即使有了-d参数。

然后我们可以进入我们这个Centos

[plain] 
 
 
 
  1. docker attach <ContainerID>  

进入Centos后,发现竟然没有ifconfig和ssh,网上例子很多参照着来

  1. ifconfig的安装,执行命令
    [plain] 
     
     
     
    1. yum search ifconfig  
2. 安装ifconfig
[plain] 
 
 
 
  1. yum install -y net-tools.x86_64  
好了,有了它终于可以知道自己的IP了和网络。现在还需要一个ssh让我们能方便的访问Centos
接下来只要启动就可以了
[plain] 
 
 
 
  1. yum install -y openssh-server
  2. #使用ssh-keygen命令来手动生成
  3. 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
  4. /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
转自:
0
你可能感兴趣的文章
秒杀多线程第五篇 经典线程同步 关键段CS
查看>>
c++头文件包含注意要点
查看>>
C++ Assert()
查看>>
契约式编程
查看>>
JAVA 死锁
查看>>
C/C++ 中头文件相互包含引发的问题
查看>>
PowerDesigner绘制ER图
查看>>
MVC设计模式
查看>>
浅析MVC模式与三层架构的区别
查看>>
白话经典算法系列之一 冒泡排序的三种实现
查看>>
tlb与dll文件区别
查看>>
协议森林12 天下为公 (TCP堵塞控制)
查看>>
协议森林13 9527 (DNS协议)
查看>>
协议森林15 先生,要点单吗? (HTTP协议概览)
查看>>
协议森林16 小美的桌号(DHCP协议)
查看>>
协议森林17 我和你的悄悄话 (SSL/TLS协议)
查看>>
Lambda表达式详解
查看>>
MarshalAs的使用
查看>>
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
查看>>
c# 特性/属性(Attribute) 以及使用反射查看自定义特性
查看>>