首页 资讯 社群 我的社区 搜索

实战Docker运行环境搭建

木须虎
2018-10-01 16:50:18

最近一直在研究docker。跟初学者一样,先要安装docker。但试了ubuntu、RedHat等多个版本,均无法成功安装docker。后来无意之中在DeepIn里试了下,居然成功了(不得不为国产的操作系统点个赞)!现将安装过程和体会记录下来。

        笔者使用的DeepIn是15.3,对应的ubuntu内核满足了docker的最低要求。下面就来讲一下笔者是如何一步步地安装好docker的(后来又在Ubuntu16.04版本里试了一次,也可以了,可能是因为之前的ubuntu版本太低的缘故吧)。

        首先在DeepIn中切换到root账户。然后运行如下命令:

  1. $sudo apt-get update
  2. $sudo apt-get install -y docker.io
  3. $sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
  4. $sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

        运行最后一个命令可能会提示bash_completion.d目录不存在,不用管,接着往下操作。

        此时docker已经安装好了,可以启动服务了:

$sudo service docker start

        笔者通过在多种Ubuntu版本上安装后发现通过这种方式安装的docker始终不是最新版,只能到1.6版,docker很多新的特性(如swarm)根本无法支持。遂改用如下模式安装docker:

curl -sSL https://get.docker.com/ | sh


curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh


        这时运行docker -v命令就会发现已经是1.13.1版本了(^O^ )!

        这时候只是有了虚拟机运行的环境,还需要下载操作系统虚拟机镜像文件。在终端中运行如下命令:

$sudo docker pull ubuntu:12.04


        就可以将12.04版本的ubuntu镜像文件下载到本地,并挂接到docker上。然后在终端中运行如下命令就可以启动虚拟机镜像:

$sudo docker run -t -i ubuntu:12.04 /bin/bash


        这时在终端中可能看不到什么反应。可通过如下命令来查看启动的虚拟机镜像:

  1. $sudo docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 5bdiswi2asdk ubuntu "bin/bash"
  4. 2 hours ago Up 2 hours happy_noyce


        然后在终端中运行如下命令连接到虚拟机中:

  1. $sudo docker attach 5bdiswi2asdk
  2. root@5bdiswi2asdk:/#


        这样就可以像在真实的linux系统中一样执行各类linux操作了。

        上述启动docker容器的方法有个问题,那就是一旦在容器中执行了exit命令,容器就自动关闭了,这样对于在宿主机和容器间切换操作时非常不方便,基于此可以通过守护态来启动容器:

$sudo docker run -t -i -d ubuntu:12.04 /bin/bash

         这时启动容器后依然是在宿主机中,如果想连接到容器中,可先执行docker ps命令查看正在运行的容器:

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
  2. 42255ca8977e 5dd999081183 "/bin/bash" 4 seconds ago Up 2 seconds eager_bardeen


        此时可通过如下命令进入容器:

  1. $docker exec -it 42255ca8977e /bin/bash
  2. root@42255ca8977e:/# 


        此时再运行exit容器就不会停止了。

        但不要高兴的太早了。笔者发现这个ubuntu的镜像是个精简版,总共才160多M,里面几乎没有什么可用的软件和命令,连ping和ifconfig这样的命令都运行不了。所以要想用的顺手还得安装一些必要的软件。

        在虚拟机的终端中运行如下命令:

root@5bdiswi2asdk:/#apt-get update

        这样才可以使用apt-get命令搜寻和安装软件。如在终端中运行如下命令:

root@5bdiswi2asdk:/#apt-cache ifconfig


        安装完自己需要的软件后千万别急着关机,否则下次启动虚拟机后依然是最原始的镜像,里面什么软件都没有,所以安装完软件后可以在宿主机(即这里的DeepIn)中运行如下命令将更改后的镜像导出到本地:

$sudo docker export 5bdiswi2asdk>ubuntu.tar

        这时打开导出后的ubuntu.tar,会发现里面已经有之前新建的文件夹、安装的软件目录了。
        如果想停止虚拟机镜像,通过在虚拟机镜像的终端中运行exit命令是达不到效果的:

root@5bdiswi2asdk:/#exit

        这样只是退出了容器的终端而已,容器依然在运行。如果想关闭虚拟机镜像则需要在docker所在的主机上运行如下命令:

$docker stop 5bdiswi2asdk

        如果下次想打开之前导出的虚拟机镜像,可在主机的终端中运行如下命令:

$cat ubuntu.tar | sudo docker import - test/ubuntu


       然后运行如下命令查看导入的所有镜像:

  1. $sudo docker images
  2. REPOSITORY TAG IMAGE_ID CREATED VIRTUAL
  3. test/ubuntu v12.04 449iadsfi45 1 miniute 683.32MB


      这样就可以使用如下命令启动这个ubuntu镜像了:

$sudo docker run -t -i test/ubuntu /bin/bash

--------------------- 本文来自 宏羽 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/greatfeather/article/details/54707715?utm_source=copy   

用户评论