Docker入门笔记 (纯小白记录)
1、Docker是啥
Docker是一个容器引擎,我们可以把我们的应用和依赖环境(比如配置文件、库等)打包到这个容器中。值得注意的是,这个容器是可移植的,我们可以把程序打包,然后发布到另一台机器上。
Docker采用C/S架构,客户通过api创建Docker容器。
此图包含了Docker最重要的三个概念:镜像、容器、仓库
- 镜像(Images):镜像是一个包含了应用程序和依赖环境的文件,可以看作是一个模板,通过这个模板我们可以构建容器。镜像与容器有点像类与对象的关系,如果镜像是类,那么容器就是由镜像产生的对象。
- 容器(Container):容器是由镜像产生的一个实例,可以独立运行,相互之间互不干扰。
- 仓库 (Hub) :用来存储和管理镜像的仓库,有点像 git版本控制中的仓库。
(图片来自:http://www.runoob.com/docker/docker-architecture.html)
2、Docker安装和Hello world
(1)Ubuntu上安装 Docker
使用下面的命令安装:
sudo wget -qO- https://get.docker.com/ | sh
安装成功后,会显示Docker版本等信息
(2)Docker的Hello world
sudo docker run ubuntu:14.04 /bin/echo "Hello world"
ubuntu:14.04是要运行的镜像,表示以ubuntu:14.04镜像创建一个容器
/bin/echo “Hello world”:在容器里执行的命令
需要注意的是,如果指定的镜像在本地不存在,Docker会从DockerHub下载公共镜像,我们可以用下面的命令查看系统中已有的镜像
docker images
当然,我们也可以直接run hello-world
docker run
3、Docker容器与镜像
下面将做一个小实验,练习创建容器和镜像~
- 创建一个容器,然后在容器中修改文本
- 通过上一步中的容器,创建镜像
- 通过镜像创建新的容器,看看有没有修改后的文本
1、创建一个容器,然后在容器中修改文本
使用docker run 命令可以创建一个容器,
docker run -i -t
-i:交互模式
-t:为容器分配一个终端tty
ubuntu:容器的镜像名称,可以通过docker images 查看
/bin/bash:在容器中运行的命令
在创建的容器中,我们可以新建一个文件:
touch test.txt
echo "asdf" >> test.txt
2、通过上一步中的容器,创建镜像
首先从容器中退回到主机,可以按 “ctrl +p 、 ctrl + q”
然后通过容器创建镜像
docker commit -m "test" 863
有点像git的commit,863是容器的ID,ubuntu是镜像的名字,my_test是镜像的标签。创建镜像后,可以通过docker images查看有没有我们刚刚创建的镜像
如果想从主机中再次进入刚刚创建的容器,可以使用下面的命令查看当前活动的容器
docker ps
然后使用命令:docker attach 863 进入刚刚创建的容器,其中863是容器的ID
3、通过镜像创建新的容器,看看有没有修改后的文本
docker run -i -t ubuntu:my_test /bin/bash
cat test.txt # 读取test.txt中的内容
今天先学到这里,拜拜~