Docker学习笔记#1

一、Docker Toolbox

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

Docker学习笔记#1_第1张图片
docker toolbox

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

Docker学习笔记#1_第2张图片
安装完成

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


Docker学习笔记#1_第3张图片
命令行工具

二、Image

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

Docker学习笔记#1_第4张图片
image

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

搜索镜像

docker search centos
search

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

下载镜像

比如要下载cenos镜像

docker pull centos
Docker学习笔记#1_第5张图片
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表示容器的名字,如果不手动指定,会默认生成一个名字。

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

Docker学习笔记#1_第6张图片
run2

删除容器

docker rm CONTAINER ID
rm

指定容器名

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

--name

查看容器日志

docker logs CONTAINER NAME

停止容器

docker stop CONTAINER NAME

重启容器

docker restart CONTAINER NAME

启动容器

docker start CONTAINER NAME
Docker学习笔记#1_第7张图片
container

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

创建带互动的容器

docker run -i -t centos /bin/bash

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

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

Docker学习笔记#1_第8张图片
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只会把有变化的部分上传上去。

你可能感兴趣的:(Docker学习笔记#1)