docker入门:安装以及基本的命令

olei 3,095 views 2

Ubuntu 16.04 64位、Mac下

什么是Docker?

  • Docker是一个开源的应用容器引擎
  • 开发者可以打包应用以及依赖包到一个可移植的容器中,然后可以发布到任何流行的unix系统中
  • 容器是完全地使用沙箱机制,相互之间不会有任何接口

为什么要用Docker

  • Docker中运行的容器,没有进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。
  • Docker的启动速度往往都是可以做到秒级的
  • Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性
  • 迁移更方便,docker是跨平台的,Windows、Mac、Linux都支持
  • Docker支持镜像二次制作发布、复用

如何使用呢?

安装

mac下

$ brew cask install docker

或者直接下载:https://download.docker.com/mac/stable/Docker.dmg

ubuntu下

$  curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

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

$  sudo  apt-get  install  docker-ce
  

基本用法 (nginx镜像为例)

$  docker  pull  nginx:latest

docker  pull是用来获取官方那边的docker镜像获取到镜像之后,使用 docker  images来查看获取到本地的镜像

国内docker pull的时候,比较慢,这里介绍一个国内的源

  • ubuntu
$ cd /etc/docker
$ touch daemon.json

在daemon.json里面写入:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}

之后重启docker

  • Mac

docker入门:安装以及基本的命令

docker入门:安装以及基本的命令

填入https://docker.mirrors.ustc.edu.cn/或者如图的链接

 

$ docker run --name nginx_test -d -p 80:80 nginx:latest

docker  run是运行该镜像”-p  80:80” 意思是将本地的80端口映射到容器的80端口,--name是给这个容器命名,-d  参数是将它作为守护进程在后台运

 $ docker images

docker images是列出来自己本地所有的镜像

$  docker  ps

    docker  ps是查看已经启动的容器

$  docker  exec  -it  nginx_test  /bin/bash

docker  exec  -it 是进入该容器里面,后面可以跟容器的ID,也可以跟容器名,/bin/bash是以shell模式下运行,默认情况是ubuntubash

$  docker run –p 80:80  --name nginx_test  \
     -v  /var/www/html:/etc/www/html

 -v参数是将本地文件挂载到容器内

$  docker  run  -it  nginx:latest  /bin/bash

镜像没有在容器运行的时候,可以通过docker  run  -it  xxx:xxx  /bin/bash来以shell的方式来进入

$  docker  rmi nginx:latest

     删除nginx镜像 

Docker容器运行之后,可以进去里面安装一些比如vim等的工具

  • 下面介绍一些对运行的容器命令

  • 停止容器运行:
$ docker stop <container id> /<container name>
  • 运行之前停止的
$ docker start <container id> /<container name>
  • 重启运行中的容器
$ docker restart <container id> /<container name>
  • 删除容器
$ docker  rm  <container id> /<container name>

(删除之前要先停止运行该容器)

镜像与容器的关系

  • Docker的镜像,可以运行很多的容器,也就是说可以一对多的关系,注意的是,每个运行的容器名称、ID是不一样的
  • 各个容器之间互不影响,一个容器中安装的一些工具对其他相同镜像下的其他容器是完全没有影响的
  • 容器是必须要建立在存在镜像的基础上的,无镜像,无容器

下篇介绍Dockerfile以及docker-compose工具

发表评论 取消回复
表情 图片 链接 代码

  1. kuoge
    kuoge Lv 1

    学习学习,可惜win上装docker 贼麻烦。

    • olei
      olei 站长

      @kuoge要是win10的话,可以在应用商店下载ubuntu或者其他linux应用,就可以玩了

分享