Docker学习笔记#1

作者: BeckJiang | 来源:发表于2016-07-03 13:28 被阅读1204次

一、Docker Toolbox

Docker本身需要在Linux上运行,所以想要在windows和mac系统下运行,你需要安装一些软件。Docker Toolbox就是一个软件包,可以登陆官网下载系统对应版本。

docker toolbox

安装完成以后会有两个使用docker的工具:一个是命令行,一个是图形界面。

安装完成

打开Docker Quickstart Terminal工具,默认会创建一个default的虚拟机:


命令行工具

二、Image

Docker Hub网站上面,可以找到别人做好的一些镜像,有提供基础环境的镜像如,Ubuntu,Centos等等,也有一些安装了软件的镜像。

image

使用docker命令下载所需镜像到本地电脑上,不过当你不确定你要下载的镜像的名字可以先去搜索一下,比如你要搜索跟Centos相关的镜像:

搜索镜像

docker search centos
search

官方提供的镜像一般没有前缀,就像第一个centos。

下载镜像

比如要下载cenos镜像

docker pull centos
download

使用docker官网提供的registry tree可能会有点慢,可以选择使用国内提供的一些镜像服务,比如阿里云提供的服务,这样会快很多。

查看镜像

下载完成以后,查看已下载镜像可以输入:

docker images
images

三、container

创建容器

有了镜像,就可以运行镜像去创建容器。比如:

docker run centos /bin/echo 'hello'
run

docker run 后面跟的是镜像名字,接着是你希望在创建容器中运行的命令,上面运行的是使用echo命令输入hello

查看容器

docker ps
ps

没有容器,原因是刚运行的容器执行完命令后就退出了。可以通过加上--all的选项查看所以容器:

psall

CONTAINER ID表示容器的id,IMAGE表示使用的镜像,COMMNAND表示运行的命令,CREATED表示容器创建的时间,STATUS表示容器状态,NAME表示容器的名字,如果不手动指定,会默认生成一个名字。

我们可以基于同一个镜像创建不同的容器:

run2

删除容器

docker rm CONTAINER ID
rm

指定容器名

创建容器时可以使用--name的选项指定容器名字,方便后续对该容器的操作:

--name

查看容器日志

docker logs CONTAINER NAME

停止容器

docker stop CONTAINER NAME

重启容器

docker restart CONTAINER NAME

启动容器

docker start CONTAINER NAME
container

每运行一次容器都会输出一个hello,所以最后的log里有三个hello。

创建带互动的容器

docker run -i -t centos /bin/bash

-i或者--interactive选项表示创建一个带交互的容器
-t或者--tty选项表示给容器附加一个终端
/bin/bash表示终端的位置

执行命令后你会看到你已经进入到容器里面了,容器的主机名就是容器的id,在里面可以执行命令,安装应用等等。

bash

四、创建镜像

手工创建

docker commit -m '提交日志'  -a '作者' 容器ID 镜像名:容器标签

比如在容器里安装了nodejs的应用,想要保存修改,作为镜像使用。可以执行

docker commit -m '安装 nodejs' -a 'beckjiang' b5f1e430c603 beckjiang/nodejs-demo:latest

使用Dockerfile创建

使用dockerfile创建会更灵活一些。比如还是创建一个安装有nodejs应用的镜像,
先创建目录,进入目录,编辑dockerfile:


dockerfile1

进入nodejs-demo目录下后,创建Dockerfile文件,编辑文件:

FROM centos
MAINTAINER beckjiang
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install nodejs -y

一个最基本的Dockerfile就这样写好了,接着就是用这个Dockerfile创建镜像。回到命令行,当前所在位置为nodejs-demo里面,运行命令:

docker build --tag beckjiang/nodejs-demo:latest .

--tag表示镜像的名字以及tag;
. 表示当前目录下去寻找Dockerfile

推送镜像到Docker hub

Docker hub是一个保存镜像的地方,可以登陆网站注册账号,注册完成后,可以在命令行登陆并把自己创见的镜像推送到Docker hub上面。

登陆Docker hub

docker login

随后输入帐号,密码。

推送镜像

登陆成功后,可以把镜像推送上去

docker push beckjiang/nodejs-demo

docker只会把有变化的部分上传上去。

相关文章

网友评论

  • 5496fa815a6e:很清晰易看,谢谢啦
    BeckJiang:@吃个橘子 谢谢:blush:可以看看另外几篇了解更多哈
  • _已注销:FORM centos
    MAINTAINER beckjiang
    RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
    RUN yum install nodejs -y

    FROM 单词错打成了 FORM
  • 诺之林:系列文章看了一半了, 写得非常好, 加油!
    BeckJiang:@诺之林_ :relaxed:谢谢~
  • 聪少Jeff::+1:
    聪少Jeff:@BeckJiang 我已经看到了,不错:+1:
    BeckJiang:@聪少Harry 笔记更新了2 3了,可以看看噢:)
  • 应叴:复杂
  • ee433729fc39:总结的非常清晰,希望能持续更新, 创建带交互的容器下面有个别字:活着
    BeckJiang:@hjq814380089 谢谢:)已修正,会努力坚持的!
  • 小胖_白银狮子:在mac上用了一次docker 导致机器CPU和内存下不来,就没用过了~
  • 飘人:说实话啊,mac 上的 docker 真难用
    BeckJiang:@飘人 命令行都一样吧
    karonl:@飘人 会有不一样吗?

本文标题:Docker学习笔记#1

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