Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

测试环境:centos7.6

Docker安装

  1. 环境要求

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

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

  1. [root@localhost ~]# uname -r
  2. 3.10.0-957.5.1.el7.x86_64
  1. 安装docker

使用yum安装和脚本两种安装方法都可以,亲测yum能快点。注意使用sudoroot权限登录Centos。要是需要安装最新版本的就使用脚本安装方法。

  1. # 先更新下yum包
  2. sudo yum update
  3. # 使用yum安装
  4. yum install -y docker
  5. # 使用脚本安装
  6. curl -fsSL https://get.docker.com -o get-docker.sh
  7. sudo sh get-docker.sh
  1. 启动docker
  1. # 启动docker
  2. sudo systemctl start docker
  3. # 重启docker
  4. sudo systemctl restart docker
  1. 查看docker版本
  1. [root@localhost ~]# docker --version
  2. Docker version 18.09.2, build 6247962
  1. 设置镜像加速

vi /etc/docker/daemon.json

  1. {
  2. "registry-mirrors": ["http://hub-mirror.c.163.com"]
  3. }
  1. 设置开机自启
  1. # 设置开机启动
  2. systemctl enable docker
  3. # 将指定用户添加到用户组
  4. usermod -aG docker root

Docker常用命令

1. docker version

显示docker版本信息

2. docker info

显示docker系统信息

从Docker Hub查找镜像
docker search php 查找php的镜像

4. docker images

列出本地镜像

5. docker ps

列出所有在运行的容器信息
docker ps -a 显示所有的容器,包括未运行的

6. docker pull

从镜像仓库中拉取或者更新指定镜像
docker pull codehi/nginx:v1 拉取自己仓库的nginx镜像

7 docker start/stop/restart

启动/停止/重启容器
docker stop mynginx 停止运行中的容器mynginx
docker stop `docker ps -a -q` 停止所有容器

8. docker rm

删除一个或多个容器
docker rm mynginx 删除容器mynginx,正在运行中的容器需要stop后才能删除,或者使用强制删除。
docker rm -f mynginx 强制删除运行中的容器mynginx
docker rm `docker ps -a -q` 删除所有容器

9. docker rmi

删除本地一个或多个镜像
docker rmi codehi/nginx:v1 删除镜像codehi/nginx:v1
docker rmi -f codehi/nginx:v1 强制删除
docker rmi `docker images -q` 删除所有镜像

10. docker logs

获取容器的日志
docker logs -f mynginx 跟踪容器mynginx的日志,实时输出的。

11. docker history

查看指定镜像的创建历史
docker history codehi/nginx:v1 查看本地镜像codehi/nginx:v1的创建历史

12. docker login

登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login 登录至Docker Hub,下一步会提示输入账号密码

13. docker logout

登出Docker Hub

14. docker push

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push codehi/nginx:v1 将本地镜像codehi/nginx:v1镜像推送到docker hub仓库中

15. docker commit

从容器创建一个新的镜像
docker commit -a "codehui" -m "test" 3218b3ad4e47 codehi/nginx:v1 3218b3ad4e47 保存为新的镜像codehi/nginx:v1,并添加提交人信息(codehui)和说明信息(test)

16. docker tag

标记本地镜像,将其归入某一仓库
docker tag nginx:v1 codehi/nginx:v2 将镜像nginx:v1标记为 codehi/nginx:v2 镜像

17. docker save

将指定镜像保存成 tar 归档文件
docker save -o codehi-nginx-v1.tar codehi/nginx:v1 将镜像codehi/nginx:v1生成codehi-nginx-v1.tar归档文件

18. docker load

从归档文件中创建镜像
docker load -i codehi-nginx-v1.tar 从镜像归档文件codehi-nginx-v1.tar创建镜像

19. docker export

将文件系统作为一个tar归档文件导出到STDOUT
docker export -o codehi-nginx-v1.tar mynginx 将容器mynginx保存为tar文件。

20. docker import

从归档文件中创建镜像
docker import codehi-nginx-v1.tar codehi-nginx-v1 从镜像归档文件codehi-nginx-v1.tar创建镜像,命名为codehi-nginx-v1

21. docker kill

杀掉一个运行中的容器
docker kill -s KILL mynginx 杀掉运行中的容器mynginx

这些命令比较常用,其他的可以自行查看文档:docker基本命令