docker 学习加实战

1.理解

记住最重要的一点,Dokcer实际是宿主机的一个普通的进程,这也是Dokcer与传统虚拟化技术的最大不同。

Docker能保证运行环境的一致性,不会出现开发、测试、生产由于环境配置不一致导致的各种问题,一次配置多次运行。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。

 

rootfs----内核空间是 kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。

用户空间的文件系统是 rootfs,包含我们熟悉的 /dev, /proc, /bin 等目录。

对于 容器的 镜像来说,底层直接用 Host 的 kernel,自己只需要提供 rootfs 就行了,容器是共享主机的kernel。

先简单理解 docker 的使用过程,它分为镜像构建与容器启动。

镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。

容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。

而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。

简单总结:

1.dockerfile: 构建镜像;

2.docker run: 启动容器;

3.docker-compose: 启动服务;

2.安装

更新ubuntu的apt源索引
 sudo apt-get update 

安装包允许apt通过HTTPS使用仓库

 sudo apt-get install \
       apt-transport-https \
       ca-certificates \
       curl \
       software-properties-common 

添加Docker官方GPG key

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

设置Docker稳定版仓库

 sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable" 

添加仓库后,更新apt源索引

 sudo apt-get update 

安装最新版Docker CE(社区版)

 sudo apt-get install docker-ce 

检查Docker CE是否安装正确

sudo docker run hello-world 


如果终端卡在Unable to find image 'hello-world:latest' locally位置
docker在本地没有找到hello-world镜像,也没有从docker仓库中拉取镜像,出项这个问题的原因:是应为docker服务器再国外,我们在国内
无法正常拉取镜像,所以就需要我们为docker设置国内阿里云的镜像加速器;
需要修改配置文件      /etc/docker/daemon.json  如下  
{ 
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}
为了避免每次命令都输入sudo,可以设置用户权限,注意执行后须注销重新登录
 
 sudo usermod -a -G docker $USER

3.启动与停止

 

安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令

 
# 启动docker sudo service docker start  

# 停止docker sudo service docker stop

# 重启docker sudo service docker restart

参考文章

理解Docker镜像分层


 
 
 



欢迎留言