docker的简单使用

已经四个多月没有写过博客了,秋招去了,哈哈。最近在研究docker,想将实验室研发的系统部署在docker之中从而实现一键部署,就用这一小段docker的经历来写一篇博客吧(基本上也是读书笔记了)。

首先说一说我对docker的认识。我对docker的理解就是:一个容器化的应用,可以看作一种非常轻量级的虚拟机(虽然和虚拟机在原理上有本质的区别)。通过docker,可以在一台物理机上部署多个应用,并且这些应用相互没有什么影响,就像在很多个物理机上部署的应用一样。可以通过docker技术,在几台机器上就实现一个微小的集群。

docker有一本非常好的书,就是《docker——从入门到实践》,网上到处都是可以下载的链接。

首先,需要安装docker。作为初学者,我碰到了一个坑,很多树上介绍的命令,我都无法找到,比如docker network命令,比如docker run命令中的–ip参数。后来发现我安装的是docker.io,而刚才提到的那些命令,都是最新的社区版里面才有,而最新的社区版,一般的apt源里面没有,需要进行配置。在apt源里面加上一条记录:

deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ trusty stable

然后,执行以下命令:

sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add –
sudo apt-get update
sudo apt-get install docker-ce

这样,就在计算机上安装好docker了。

然后,从官方源上拉一个ubuntu:14.04的镜像下来:

docker pull ubuntu:14.04

然后,通过以下命令,创建一个容器并且执行。其中,-d表示容器在启动后会进入后台;/bin/bash /home/ubuntu/1.sh表示容器会执行这一次脚本后退出。想不让容器退出的化,在脚本之中添加一行tail -f /dev/null即可:

docker run -dit ubuntu:14.04 /bin/bash /home/ubuntu/1.sh

然后,通过docker ps查看容器的标识(一串哈希字符串),可以通过 docker inspect+容器标识 来查看某个容器的详细信息通过以下命令可以进入容器的命令行界面:

docker exec -it containerID bash

然后,就进入容器了。在容器内一通操作,把实验室自行研发的通信系统部署好之后,就可以通过exit命令退出了。

然后,通过以下命令将容器“提交”,形成一个镜像:

docker commit –message=”communication system” –author=”xc” conainerID xc/system:v1.0

通过docker images可以查看当前系统中的所有镜像。

然后,通过 docker push xc/system:v1.0 可以将镜像推送到远程服务器中(当然,前提条件当然是需要创建账号等)

然后,如果想要创建一个固定ip的容器,首先需要创建一个虚拟网络:

docker network create –subnet=192.168.1.0/24 mynetwork

最后,如果想通过刚才的镜像来创建一个容器的话,再次执行以下命令就可以了:

docker run –ip=192.168.1.200 –net mynetwork -dit -p 80:80 -p 9000:9000 xc/system:v1.0 /bin/bash /home/ubuntu/1.sh

此时,再通过 docker ps 命令查看,就可以看到刚刚创建的容器了。

 

找不到什么好看的图了,随便上一张图吧:

 

共有 0 条评论

Top