今天小编给大家分享一下Docker快速入门及环境配置的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
主要优势为:
更快速的交付和部署 - 容器成为了最小单位
更高效的虚拟化 - 内核级虚拟化
更轻松的迁移和拓展
更简单的管理
基本概念
主要是三个:
镜像(image)
一个只读的模板,镜像可以用来创建 docker 容器
可以简单创建或更新现有镜像,或者直接下载使用其他人的
容器(container)
容器是从镜像创建的运行实例,在启动的时候创建一层可写层作为最上层(因为镜像是只读的)
可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
可以把容器看做是一个简易版的 linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序
仓库(repository)
集中存放镜像文件的场所
最大的公开仓库是 docker hub
国内的公开仓库包括 docker pool 等
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了
docker 仓库的概念跟 git 类似,注册服务器可以理解为 github 这样的托管服务
安装
官方网站提供了 mac, linux 和 windows 版本的安装教程。因为我打算使用虚拟机进行安装测试,所以这里主要走 linux 的安装教程,不过其他的应该大同小异。我的 ubuntu 版本是 14.04 lts, trusty
docker 目前只能安装在 64 位平台上,并且要求内核版本不低于 3.10,实际上内核越新越好,过低的内核版本容易造成功能的不稳定。可以通过下面的命令来检查内核版本(两个方式,都可以):
parallels@ubuntu:~$ uname -a linux ubuntu 3.13.0-83-generic #127-ubuntu smp fri mar 11 00:25:37 utc 2016 x86_64 x86_64 x86_64 gnu/linux
parallels@ubuntu:~$ cat /proc/version linux version 3.13.0-83-generic (buildd@lgw01-55) (gcc version 4.8.2 (ubuntu 4.8.2-19ubuntu1) ) #127-ubuntu smp fri mar 11 00:25:37 utc 2016
这里我们按照官网的教程,不使用 apt-get
而是使用 curl
来进行安装。
1、如果没有安装 curl,使用 sudo apt-get update; sudo apt-get install cur
l 来进行安装
2、下载最新的 docker 包 curl -fssl | sh
如果想要以 non-root
用户的角色来使用,请使用 sudo usermod -ag docker parallels
(这里 parallels 是用户名),注意需要注销并重新登录以应用改动
3、验证安装
需要先启用 docker sudo service docker start
然后可以用 docker version
来查看版本
最后使用 docker run hello-world
来测试
版本信息
parallels@ubuntu:~$ docker version client: version: 1.10.3 api version: 1.22 go version: go1.5.3 git commit: 20f81dd built: thu mar 10 15:54:52 2016 os/arch: linux/amd64 server: version: 1.10.3 api version: 1.22 go version: go1.5.3 git commit: 20f81dd built: thu mar 10 15:54:52 2016 os/arch: linux/amd64
成功运行 hello world 的结果
parallels@ubuntu:~$ docker run hello-world hello from docker. this message shows that your installation appears to be working correctly. to generate this message, docker took the following steps: 1. the docker client contacted the docker daemon. 2. the docker daemon pulled the "hello-world" image from the docker hub. 3. the docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. the docker daemon streamed that output to the docker client, which sent it to your terminal. to try something more ambitious, you can run an ubuntu container with: $ docker run -it ubuntu bash share images, automate workflows, and more with a free docker hub account: https://hub.docker.com for more examples and ideas, visit: https://docs.docker.com/userguide/
这之后的部分是课程需求。
我们需要安装 docker machine
和 virtual box
,具体步骤为:
# 获取权限 $ sudo su # 下载 docker machine 的二进制文件 $ curl -l https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine # 验证安装 $ docker-machine version docker-machine version 0.6.0, build e27fb87
添加源
把这行添加到 /etc/apt/sources.list
文件中 deb trusty contrib
wget -q -o- | sudo apt-key add -
更新并安装 sudo apt-get update; sudo apt-get install virtualbox-5.0
配置
然后是一些配置,先重设默认的虚拟机
删除原来的默认(如果有的话)docker-machine rm default
创建新的默认虚拟机 docker-machine create --driver virtualbox default
(这一步可能需要等一下,我用的是 parallel desktop 11,还需要在虚拟机设置中开启 cpu 虚拟化,主要是支持 vt-x)
然后如果直接在菜单中选择 virtual box 的话,就会发现什么都没有,技巧是要在刚才的命令行中输入 virtualbox,然后就可以看到下面的界面:
在 settings - network 中选择 port forwarding,然后按照如图所示添加记录
这里的 host port: 9234 记为 a,guest port: 9001 记为 b。然后就可以启动 docker 中老师提供的镜像了:
命令为 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1
(需要下载一段时间,然后再解压一段时间),这里 9001 记为 c,9000 记为 d。
接着就会直接连接到 docker 中的虚拟机,从之后的图中可以看到命令行前面的内容也变化了。然后我们输入命令开启前端
cd /home/spring2016/apachecmda-frontend ./activator run # 相当于在 9000 端口开启
不要关现在的终端,开启一个新的终端。用
docker exec -it `docker ps -q` /bin/bash
进入正在执行的 docker
等待一段时间后,继续走以下命令
# 开启 mysql 服务器 service mysql start cd /home/spring2016/apachecmda-backend ./activator "run 9034" 然后等待一段时间(第一运行需要编译),就可以见到主页面了:
也可以尝试直接 localhost:9001
还记得前面的端口转发吗?这里解释一下:
a,也就是 9234,是用户访问的端口号
b,也就是 9001,我们通过虚拟机的端口转发从 9234 转到了 9001
c,也就是 9001(这个命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是虚拟机继续转发的端口
d,也就是 9000(这个命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是 docker 容器中接收请求的端口。
也就是说,b 和 c 一定要一样,a 和 d 可以在命令中设置。至于为什么后端需要运行在 9034 端口,是因为前端和后端通过这个端口通讯(应该是写死在代码里的)
挂载主机数据卷到容器内,可以通过如下命令进行文件夹映射
docker run -it -p 9999:9999 -p 9001:9000 -v ~/localfolder:/sharedfolder cmusvsc/apachecmda:1.1
从容器内拷贝文件到主机上
# 列出 container docker ps # 复制 这个不知道为啥不行 docker cp <containerid>:/file/path/within/container /host/path/target # 挂载映射 docker run -it -v /home/parallels/documents/code:/home/code cmusvsc/apachecmda:1.1 # 复制 cp -r spring2016/* ./code/
以上就是“Docker快速入门及环境配置的方法”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。