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

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

填入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模式下运行,默认情况是ubuntu的bash

$  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工具

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零学习云计算

Docker学习记录(1)——搭建自己的Docker Registry

最近在编写Kubernetes demo的时候,遇到了一个问题:当相同的Pod部署到不同的Node上时,每个Node都得下载Pod中指定的镜像文件。 由于“墙”...

4590
来自专栏osc同步分享

原 使用docker部署微服务应用

6324
来自专栏Pythonista

docker构建镜像

Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。

953
来自专栏编程坑太多

『中级篇』Dockerfile实战(19)

1223
来自专栏Java技术栈

Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。

除了可以在Docker Hub上搜索镜像外,还可以通过命令 docker search xxx 进行搜索,下面以 mysql 为例:

1082
来自专栏纯洁的微笑

Docker(二):Dockerfile 使用介绍

上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像、容器和 Dockerfile 。我们使用 Dockerfile 定义...

3194
来自专栏禹都一只猫博客

Docker进阶:Dockerfile以及docker-compose工具

本文作者为olei,转载请注明。

911
来自专栏后台及大数据开发

kubernetes集群搭建(2):docker私有仓库

kubernetes集群搭建(1):环境准备 中各节点已经安装好了docker,请确认docker已启动并正常运行

631
来自专栏编程坑太多

『中级篇』Dockerfile实战(19)

1486
来自专栏木制robot技术杂谈

Docker 占满 Linux 系统盘解决方案

一般情况下我们通过命令在 Linux 上安装 Docker,Docker 会将文件默认储存在 /var/lib/docker 目录下,时间久了就会占用很大空间,...

731

扫码关注云+社区