Docker概述
- Docker 是一个开源的应用容器引擎,诞生于 2013 年初,基于 Go 语言实现,dotCloud 公司出品(后改名为Docker Inc)。
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
- 容器是完全使用沙箱机制,相互隔离
- 容器性能开销极低。
- Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
安装docker
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
配置docker镜像加速
默认情况下,将来从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器:
+ USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
+ 阿里云
+ 网易云
+ 腾讯云
阿里云: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
设置开机启动
systemctl enable docker
docker架构

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
docker镜像相关命令
查看镜像
查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id
搜索镜像
docker search **
也可以在 https://hub.docker.com/ 搜索
拉取镜像
docker pull **
可以带上tag指定版本,例如:
docker pull mysql:5.7
移除镜像
docker rmi 镜像id
docker容器相关命令
运行容器并在容器中打开命令行
docker run -it --name=c1 debian /bin/bash
使用--name=**
可以指定容器的名称
使用exit
退出
-i
:保持容器运行-t
:为容器分配一个伪输入终端,通常和-i
配合使用
创建后台运行的容器
docker run -id --name=c2 debian
运行命令后会显示容器的id
如果要进入后台运行的容器环境,使用
docker exec -it c2 /bin/bash
后台运行的容器使用exit
退出不会自动关闭。
-d
:以守护模式运行容器
-it
创建的容器一般称为交互式容器,-d
创建的容器一般称为守护式容器
查看运行中的容器
docker ps
运行结果
CONTAINER ID IMAGE COMMAND ... NAMES
00723499fdbf debian "/bin/bash" ... stupefied_turing
name可以标识这个容器
使用docker ps -a
可以看到所有容器(包括不在运行的)
停止运行容器
docker stop c2
启动容器
docker start c2
和docker run
的区别是docker start
是重启已存在的容器,而docker run
是从镜像创建容器。
查看容器信息
docker inspect
查看容器被改动的文件
docker diff
查看容器历史记录
docker logs
删除容器
删除指定容器
docker rm dockername
获取所有已停止的容器
docker ps -aq -f status=exited
删除所有已停止的容器
docker rm -v $(docker ps -aq -f status=exited)
将容器提交为镜像
docker commit container_name repo/image_name
repo
是存放镜像的仓库名称,这个命令将会返回一个镜像的唯一识别码
原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/docker%e6%a6%82%e8%bf%b0%e5%92%8c%e7%9b%b8%e5%85%b3%e5%91%bd%e4%bb%a4/