前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker学习笔记之一:准备,安装,初体验

Docker学习笔记之一:准备,安装,初体验

作者头像
程序员欣宸
发布2018-01-04 16:25:47
1.2K0
发布2018-01-04 16:25:47
举报
文章被收录于专栏:实战docker实战docker实战docker

想实践一下Docker,手头是个windows电脑,由于想在linux下实践,所以第一步是装虚拟机,我用的是VMware Workstation 12 Player,虚拟机文件用的是ubuntu-16.04-desktop-amd64,装好ubuntu之后,如果想在windows和ubuntu之间方便的传递文件,可以在虚拟机设置中添加共享文件夹,步骤如下图:

这里写图片描述
这里写图片描述

这样设置后记得还要安装VMWare Tools,具体的做法是在vm菜单中选择“管理”->安装VMWare Tools,再进入ubuntu,在光驱中找到对应的tar.gz文件,复制到一个新建的目录下解压开,执行解压后的目录中的vmware-install.pl,安装成功后重启ubuntu,在/mnt/hgfs目录下就会发现添加的共享文件夹了。

以上的基本工作完成后,可以开始安装Docker了,在ubuntu中打开控制台,先执行一次update更新:

sudo apt-get update

执行以下命令安装Docker:

sodu curl -sSL https://get.daocloud.io/docker | sh

安装成功的信息如下:

这里写图片描述
这里写图片描述

执行docker -v,输出如下: Docker version 17.03.0-ce, build 60ccb22

由于是自己实践,非生产环境,建议用root身份来操作,否则要输入sudo前缀挺麻烦;

用命令sudo passwd root重新设置root的密码;

设置完毕后执行”su -“再输入root密码,切换到root用户身份;

执行docker images,看看本地已有的docker镜像:

这里写图片描述
这里写图片描述

空空如也!

接下来我们安装和运行一个nginx服务,来初探docker的镜像和容器:

下载镜像:

    docker pull daocloud.io/library/nginx
下载完毕后,执行docker images可以看到下载结果:
这里写图片描述
这里写图片描述

启动: 执行启动的命令是

docker run --name nginx001 -idt -P -v /mnt/hgfs/common_dir:/usr/Downloads daocloud.io/library/nginx
下面来解释一下这一行命令:
run 根据指定的镜像文件启动一个容器
--name nginx001 启动后这个容器的名字
-d: 后台运行,并返回ID
-i: 互模式运行容器
-t: 为容器分配一个伪输入终端
-P: 随机映射一个端口至容器内部开放的网络端口
-v /mnt/hgfs/common_dir:/usr/Downloads:指定共享文件目录,进入容器后,容器的/usr/Downloads实际上就是ubuntu的/mnt/hgfs/common_dir目录了,这样传文件方便
daocloud.io/library/nginx:镜像文件名称,就是刚才下载的那个

执行docker ps可以看到已经启动的容器:

这里写图片描述
这里写图片描述

容器已经启动了,赶紧在ubuntu下打开浏览器,再输入localhost试试吧,咦?访问失败了,unable to connect!

这里写图片描述
这里写图片描述

执行docker ps命令,可以看到这么一段信息:0.0.0.0:32769->80/tcp,这里的意思是docker容器的80端口映射到的是ubuntu的32769端口,那么我们在unbuntu的浏览器中只要访问localhost:32769,就能访问到docker容器80端口了,试试吧,果然熟悉的welcome页面终于出现了:

这里写图片描述
这里写图片描述

接下来进入容器去看看,执行命令

docker exec -it nginx001 /bin/bash
下面来解释一下这一行命令:
exec 进入容器
--name nginx001 启动后这个容器的名字
nginx001: 容器名字,也可以是id
/bin/bash: 进入容器后执行的命令

现在我们已经进入容器了,执行命令cat /etc/issue看看系统情况

这里写图片描述
这里写图片描述

原来这个容器的镜像是Debian系统的,接下来我们尝试修改nginx的配置,改之前先回顾一下共享文件路径,我们从windows到vm的ubuntu,再从ubuntu到docker容器,都设置过共享文件路径的,依次是:

E:\work\vm_share\common_dir -> /mnt/hgfs/u16 -> /usr/Downloads

也就是说三个系统下面,各自的目录其实是同一个目录,在docker容器中执行cp /etc/nginx/nginx.conf ./,回到windows的E:\work\vm_share\common_dir目录下就会发现nginx.conf文件。

在windows下打开nginx.conf这个文件,找到这一行include /etc/nginx/conf.d/*.conf;,在这一行前面加个“#”注释掉这一行配置,然后在这一行下面增加如下语句:

server {
        server_name localhost;
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        location / {
            root html;
            index welcome.html;
        }
    }

这个配置是增加一个目录用来响应http请求,并改写默认index页面以及文件目录的路径,写完并保存后,回到docker容器,执行cp /usr/Downloads/nginx.conf /etc/nginx/,用改好的文件覆盖docker容器中的nginx配置文件;

在docker容器的/etc/nginx/目录下新建一个html目录,进入该目录后执行echo “abcdef” > welcome.html,这样就新建了一个内容为abcdef的html文件;

执行命令service nginx reload来重新加载nginx的配置信息,这时候再去ubuntu的浏览器上重新打开localhost:32769,可以看到默认页面已经改变了:

这里写图片描述
这里写图片描述

以上就是初步体验docker的过程,如果想关闭容器,可以执行docker stop nginx001命令来停止,想再次启动该容器,可以执行docker start nginx001。

到此,Docker的准备,安装和初体验就结束了,后续我将结合通常的java开发和部署工作,在Docker上做更多的尝试,第一次写博客,如果大家发现其中的错误的漏洞,欢迎您的指正,期待在探讨中共同进步。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档