Docker-常用命令总结

文章目录

目录

文章目录

一、什么是Docker

二、Docker与虚拟机比较

三、Docker 的架构

四、在Linux系统中安装Docker

五、Docker常用命令

六、最常用操作

七、参考资料



一、什么是Docker

在这里插入图片描述

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

二、Docker与虚拟机比较

作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势:

Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式要快得多。
Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器。
Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。
Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。

在这里插入图片描述

三、Docker 的架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker面向对象
容器对象
镜像

Docker 镜像(Images)

Docker 镜像是用于创建 Docker 容器的模板。

Docker 容器(Container)

容器是独立运行的一个或一组应用。

Docker 客户端(Client)

Docker 客户端通过命令行或者其他工具使用 Docker API (Redirecting…) 与 Docker 的守护进程通信。

Docker 主机(Host)

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker 仓库(Registry)

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

四、在Linux系统中安装Docker

1、Ubuntu Docker 安装

Docker 支持以下的 Ubuntu 版本:

  • Ubuntu Precise 12.04 (LTS)
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Wily 15.10
  • 其他更新的版本……


    前提条件

    Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。

    通过 uname -r 命令查看你当前的内核版本

runoob@runoob:~$ uname -r


使用脚本安装 Docker

1、获取最新版本的 Docker 安装包

runoob@runoob:~$ wget -qO- https://get.docker.com/ | sh

输入当前用户的密码后,就会下载脚本并且安装Docker及依赖包。

安装完成后有个提示:

    If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:

    sudo usermod -aG docker runoob
Remember that you will have to log out and back in for this to take effect!

当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令,然后重新登陆,否则会有如下报错

2、启动docker 后台服务

runoob@runoob:~$ sudo service docker start

3、测试运行hello-world

runoob@runoob:~$ docker run hello-world

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

2、CentOS Docker 安装

Docker支持以下的CentOS版本:

  • CentOS 7 (64-bit)
  • CentOS 6.5 (64-bit) 或更高的版本

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。


使用 yum 安装(CentOS 7下)

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@runoob ~]# uname -r 3.10.0-327.el7.x86_64

安装 Docker

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

本文介绍 Docker CE 的安装使用。

移除旧的版本:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world

[root@runoob ~]# docker run hello-world

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。


使用脚本安装 Docker

1、使用 sudo 或 root 权限登录 Centos。

2、确保 yum 包更新到最新。

$ sudo yum update

3、执行 Docker 安装脚本。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

执行这个脚本会添加 docker.repo 源并安装 Docker。

4、启动 Docker 进程。

sudo systemctl start docker

5、验证 docker 是否安装成功并在容器中执行一个测试的镜像。

$ sudo docker run hello-world
docker ps

到此,Docker 在 CentOS 系统的安装完成。


镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个)

五、Docker常用命令

1、镜像操作

1、搜索镜像

可使用docker search 命令搜索存放在Docker Hub中的镜像

docker search java

2、下载镜像

docker pull java

3、列出镜像

docker images 

4、删除本地镜像

docker rm java

2、容器操作

1、新建并启动容器

docker run

它有很多选项,可使用docker run –help 查看选项

常用的选项有:

-d选项:表示后台运行
-P选项:随机端口映射
-p选项:指定端口映射,有以下四种格式。
    ip:hostPort:containerPort
    ip::containerPort
    hostPort:containerPort
    containerPort

示例:

docker run -d -p 91:80 nginx

-d #后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
访问http://Docker 宿主机 IP:91/,将会看到nginx的欢迎页面。

2、列出容器

docker ps 

3、停止容器

docker stop 容器ID/容器名称 

4、强制停止容器

docker kill 容器ID/容器名称

5、启动已停止的容器

docker start 容器ID/容器名称

6、进入容器
某场景下,可能需要进入运行中的容器。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

一般进入容器的方式为:

docker exec -it 0f2f3885c9a0 /bin/bash

7、删除容器

使用docker rm命令即可删除指定容器。

docker rm 容器ID/容器名称

8、创建容器

有时候我们需要创建一个容器,但并不马上启动它,后面需要时,以start启动

docker create -it nginx

暂停容器

9、暂停一个容器,方便 commit

docker pause CONTAINER

查看容器或者镜像的详细信息

10、查看容器或者镜像的详细信息

docker inspect

六、补充命令:

1、docker ps:查看当前运行的容器
2、docker ps -a:查看全部 容器
3、docker images:查看所有拉取到的镜像
4、docker pull 镜像名:版本号 :拉取docker hub中的镜像,如果不指定镜像名则为最新版本的镜像
5、docker rm 容器名:移除镜像
6、docker search 镜像名:搜索镜像
7、docker rmi 镜像名:删除镜像
8、docker run 镜像名:版本号 :启动镜像作为容器,可以带有以下参数

9、docker rename 旧镜像名 新镜像名:镜像命名

	-p 主机端口:容器端口  ,将主机端口映射到容器的端口
	-P 随机端口映射
	-d 后台运行
	--name 指定容器名
	-e 指定运行参数

10、docker exec -it 容器名 /bin/bash :进入容器内部
11、docker inspect 容器名:查看容器详细情况,包括主机内ip地址

12、docker-compose up -d 运行docker-compose文件,启动编排好的服务

七、使用Docker创建Redis容器

1、拉取Redis镜像

docker pull redis:3.2

2、后台启动Redis

docker run -p 6378:6379 -v $PWD/data:/data  -d redis:3.2 redis-server --appendonly yes

八、参考资料

1、官网:Home - Docker
2、Docker入门教程 Docker入门教程 - DockOne.io
3、Docker_百度百科 Docker_百度百科
4、史上最全Docker资料集粹 http://special.csdncms.csdn.net/BeDocker/
5、Docker - 话题精华 - 知乎 Docker - 知乎
6、docker 简明教程 | 简果网 docker 简明教程 | 简果网
7、如何使用Dockerfile构建镜像 Docker学习笔记(3)-- 如何使用Dockerfile构建镜像_巧克力腹肌的博客-CSDN博客_docker使用dockerfile
8、Dockerfile reference - Docker Dockerfile reference | Docker Documentation
9、菜鸟教程-Docker教学 Docker 教程 | 菜鸟教程
10、 灰寨小学–python小陈的博客 Docker 笔记总结_python小陈的博客-CSDN博客

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员荣荣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值