docker初使用小结

来源:互联网 发布:.net core 2.0 知乎 编辑:程序博客网 时间:2024/05/19 23:54

  前段时间安装了docker,然后构建了自己的容器,的确觉得使用起来很方便。中间又多次构建容器,但是每次由于没有总结,每次都要去查看别人提供的文档和网上的一些命令,这次有时间总结一下我经常使用到的docker命令,以备不时之需。

  我理解docker是一种轻量级的虚拟机。就是说docker容器是运行在我们的宿主主机上的(像VM一样),一般是我们的本地linux系统上,而docker容器本身也是一个系统,这个系统上面可以安装我们各种环境,比如数据库环境,各种依赖库,比如glib等。因此docker容器可以理解为一种使用环境的集合,当我们将docker容器导出为镜像的时候。由于镜像可以保存为一个压缩文件,因此可以被移植到任何的一个安装了docker环境的宿主主机上面,实现我们一次构建环境,多次使用的情况。下面说一说我日常使用的情况。

  安装docker:

  我是用的宿主主机是centos7环境,安装命令为yum install docker-io


  安装完成之后,查看版本。

  启动docker服务:

  首先启动docker服务,命令为service docker start,如果没启动是使用不了相应的docker命令的。

  获得docker镜像:

  查看我们的系统镜像命令docker images:


  我的镜像是别人提供的,通过docker load -icentos67sslcert3.tar命令进行导入的,centos67sslcert3.tar为别人提供的docker镜像文件,这里面的IMAGEID指的是镜像的ID,REPOSITORY字段可以通过docker tag 5e centos67sslcert3方式进行修改。如果没有别人给你提供镜像,可以使用dockersearch和docker pull去docker官方下载需要的镜像。

  创建容器:

  有了镜像文件,就可以根据相应的镜像文件来创建容器了。命令为dockerrun -d -p 6022:22 --privileged=true -v /home/myworkspace:/home/myworkspace--name myserver centos67sslcert3

  通过docker ps 可以产看系统中运行的容器,docker ps –a 可以查看所有的容器,包括已经被停止的容器,可以看到我们创建的myserver容器,容器ID为d7。-d表示在让其后台运行,可以看到创建容器完事之后我并没有进入容器内部;-p表示端口映射关系,即将容器内部的22号端口对外映射为6022号端口,供后面通过ssh登陆使用;-v/home/myworkspace:/home/myworkspace 表示docker容器共享宿主目录,冒号前面为宿主目录,后面为docker容器目录,即在容器相应目录下的文件读写能够同步到宿主相应目录下面;--privileged=true表示docker容器内部访问共享目录的时候是可读可写的,如果没有次选项,则有可能只是可读的。

  进入容器:

  刚才使用了-d命令让容器在后台运行,这时候我们要进入docker。使用ssh的方式,正常的ssh是22号端口,由于我们将容器的22号端口对外映射为6022,因此登陆命令为ssh –p 6022 localhost。这里面没有使用交互式方式使用docker,感兴趣的可以自己查看下。ssh方式的好处是可以远程登陆,将localhost换成对应IP即可。

  进入容器后,就可以在容器中搭建自己想要的环境了,安装一系列的依赖库已经软件等,exit命令退出容器。

  停止容器:

  由于我们创建容器的时候使用-d参数让容器在后台运行,即使退出容器,容器依然处于运行状态,可以使用dockerstop d7命令停止对应的容器。


当然相应的启动容器命令为docker start d7,d7这个容器ID可以通过docker ps –a查找得到。

  容器生成镜像:

  此时的容器安装了很多依赖库和软件,我们需要将其打包生成文件,使其可以被拷贝到不同的机器上使用。那么第一步先将容器生成镜像。

  生成新的镜像文件hellodocker,这个镜像文件中包含了新安装的环境。

  镜像保存为文件:

  生成的文件就是在获得docker镜像那一步所需要的文件。命令为docker save -omydockerimage.tar hellodocker

  删除无用的镜像:

  因为镜像很多的时候不利于维护,因此可以使用docker rmi命令来删除相应的镜像。同理如果相应的容器不再使用,可以使用命令dockerrm 容器ID来完成。

  以上就是docker的一些基本用法。

0 0
原创粉丝点击