美文网首页
Docker初探

Docker初探

作者: 刘昊2018 | 来源:发表于2018-05-13 17:07 被阅读85次

    Docker 初探

    学习docker,最忌讳的是一上来就被各种概念弄迷糊,初学者可以完全先避开理论,从敲命令开始。当我把命令敲熟以后,我们自然就知道docker是怎么回事了,也才能体会docker究竟帮我们解决了哪些痛点。

    安装

    docker的安装需要注意以下两点:

    • 官方推荐在ubuntu上安装

    • 如果使用centos,最好是在centos7以上安装

    简单使用

    安装成功之后,我们启动它,并让docker随开机启动。

    systemctl start docker
    systemctl enable docker
    docker info //查看docker概要信息
    

    镜像和容器

    拉取

    在讲镜像之前,我们先介绍一下docker hub网站,我们可以在上面寻找我们需要的镜像。

    比如,我们在这个网站搜索mysql
    一般来说,标记有office的都是docker官方发布的镜像。

    我们进入这个主页:
    mysql image

    这里面记录了发布者对这个镜像的详细说明,我们注意到,提示我们使用如下这条命令:

    docker pull mysql
    

    这条命令的意思就是,拉取mysql镜像,我们还注意到这里提供了不同mysql版本的镜像,这里默认拉取的是latest版本。

    如果我们想指定版本,比如5.7.18版本,我们可以这样来做:

    docker pull mysql:5.7.18
    

    在终端输入这条命令后,我们稍作等待。

    下载完之后,我们输入一下命令来查看:

    docker images
    docker.io/mysql 5.7.18 44a8e1a5c0b2   10 months ago 407 MB
    

    可以看到,上面详细的列出了这个镜像的信息,包括镜像名称,版本,id,大小等等。

    使用

    我们已经成功拉取了mysql 5.7.18这个镜像,那么我们如何使用呢。我们使用下面的命令,继续探索:

    docker run -di --name=mysql1 -p 9906:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.18
    
    docker exec -it mysql1 /bin/bash
    

    这两条命令的意思是:

    • 运行容器 mysql1,暴露容器的3306端口,映射宿主机的9906端口。

    • 进入容器交互式环境。

    之后,我们所在的位置,就是容器内部了

    为了测试此时mysql是正常的,我们有两个方法:

    一.输入命令:

    mysql -uroot -p123456
    即可进入mysql客户端
    

    二.远程连接
    使用navicat远程连接,需要注意的是,此时端口不是3306

    host :宿主机host
    port:9906
    用户:root
    密码:12346
    

    即可连接。

    巩固

    为了巩固一下上述命令,我们再玩一把node.js来练习。

    第一步:拉取镜像

    docker pull node
    

    第二步:运行并进入容器

    docker run -di --name=nodejs node
    
    //在宿主机上创建一个index.js 将其拷贝到容器中
    
    touch index.js
    vi index.js   // write code  console.log('Hello World');
    
    docker cp ./index.js nodejs:/
    拷贝至容器根目录
    
    docker exec -it nodejs /bin/bash
    node index.js
    
    Hello World
    

    此外,我们还可以使用 -v进行宿主机和容器的目录映射,大家可以自行探索。

    Tomcat

    作为java程序员,我们还是绕不过Tomcat的。

    拉取镜像

    docker pull tomcat:8
    

    运行容器

    docker run -di --name=tomcat1 -p 8080:8080 tomcat:8
    docker exec -it tomcat1 /bin/bash
    
    我们进入到/usr/local/tomcat/webapps/ROOT下
    创建一个index.html,写上hello
    

    之后,访问容器的宿主机ip:8080就可以看到hello的内容。

    二次打包

    显然,tomcat容器被我们修改过内容,我们可以将它再次制作成镜像,为我们自己所用。

    docker commit tomcat1 tomcatx
    
    tomcat1是容器名
    tomcatx 是新的镜像名
    docker images
    

    推送自己的镜像到阿里云

    阿里云docker相关的版块有丰富的说明和提示,感兴趣的同学可自行探索,不再赘述。

    实践

    我们以gogs为例,来演示docker的运用。

    gogs是类似gitlab的git私服。

    拉取镜像

    docker pull gogs/gogs
    

    相关文章

      网友评论

          本文标题:Docker初探

          本文链接:https://www.haomeiwen.com/subject/vejldftx.html