什么是docker

docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

就像我们使用的vmware或virtualbox软件,docker也提供一种虚拟化服务,方便搭建和部署需要的环境,但与前者的虚拟化方式相比有诸多好处。

docker系统有两个程序:docker服务端和docker客户端。服务端是一个服务进程,管理着所有的容器。(下面会介绍什么叫容器)docker客户端则扮演着服务端的远程控制器,可以用来控制docker服务端进程。大部分情况下,docker服务端与客户端运行在同一台机器上。

关于docker中的基本概念

  • **镜像(Image):**镜像就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了一套完整的Ubuntu16.04最小系统的root文件系统。
  • **容器(Container):**镜像和容器的关系,就像面向对象中的类与实例的关系。镜像是容器的蓝本,容器是镜像运行的实体。容器可以被创建、启动、暂停、停止、删除等。
  • **仓库(Repository):**仓库可以看做一个代码控制中心,用来保存镜像。

镜像加速

拉取镜像的时候,DockerHub在国外,国内拉取的时候可能会遇到困难,因此可以部署镜像加速器。

网易:https://hub-mirror.c.163.com/
阿里云:https://<登录控制台获取>.mirror.aliyuncs.com
七牛云:https://reg-mirror.qiniu.com

docker网络重启 docker服务_服务端

在docker版本较新时,可以通过daemon config进行配置,配置文件位于/etc/docker/daemon.json(没有该文件时创建该文件)

{
	"registry-mirrors":["<your accelerate address>"]
}

再重启Docker Daemon。

sudo systemctl daemon-reload	# 重启守护进程
sudo systemctl restart docker	# 重启docker服务
sudo systemctl stop docker		# 关闭docker服务
or
sudo service docker restart		# 重启docker服务
sudo service docker stop 		# 关闭docker服务

使用docker

  • 查看docker版本信息
    docker version
  • 搜索可用的docker镜像
    docker search <image name>
  • 拉取可用的镜像
    拉取镜像时需要完整的名字,在docker的镜像索引网站上,镜像都是采用用户名/镜像名的方式存储的,在拉取时需要使用完整的名称。还有一些基础镜像,如ubuntu,经官方验证,不用使用用户名可直接使用镜像名。
    docker pull learn/tutorial
  • 运行docker容器并在容器中运行命令
    docker run有两个参数,一个是镜像名,另一个是在镜像中要运行的命令。
    使用apt-get时需要与命令行进行交互,当前在docker中无法响应这种交互,因此使用-y选项,可避免错误。
    docker run learn/tutorial echo "Hello docker!"docker run learn/rutorial apt-get install -y ping
  • 保存对容器的修改
    docker ps -l 查容器id
    docker commit <container id> <新镜像名>
  • docker网络重启 docker服务_服务端_02

  • (跟git有点像)
  • 检查运行中的镜像
    docker inspect <image id>
  • 发布自己的镜像
    发布自己的镜像,既可以方便自己重用,也可以方便他人。命令docker push,docker images命令可以列出所有安装过的镜像,push可以将镜像发布到自己的空间下面。命令docker login [OPTIONS] [SERVER]用来登录一个docker仓库。选项-u -p分别用来指定用户名和密码。

docker命令

docker命令大全

reference

docker中文社区文档菜鸟教程


这几天复现之前的ctf题总是遇到docker来搭建环境,对docker的认识还只局限于几个命令,就决定再看看教程,记录记录;写完,却又发现还是很浅,docker-compose、dockerfile等都没涉及,学无止境 冲!