Docker基本管理

一、Docker概述

1、Docker是什么?

·是一种轻量级的“虚拟机”

·在Linux容器里运行应用的开源工具

·容器技术,沙箱机制

2、Docker与虚拟机的区别

     类型            虚拟机              Docker

     启动            1-3分钟              毫秒

     容量             占用大             占用少 

     安全              安全          不安全(共享资源内核)

3、Docker的使用场景

·打包应用程序间简化部署

·可脱离底层硬件任意迁移

·例:服务器从腾讯云迁移到阿里云

二、Docker的核心概念及安装方式

1、Docker核心概念

三要素:

·镜像:一个面向Docker容器引擎的只读模板

·容器:从镜像创建的运行实例

·仓库:集中保存镜像的地方

2、CentOS安装Docker的两种方式

·使用CURL获得Docker的安装脚本进行安装

·使用YUM仓库来安装Docker

三、安装Docker

部署19版Docker

1、安装依赖包

#yum-utils 提供了 yum-config-manager

#device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
#device mapper 是 linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构

2、设置阿里云镜像源

查看是否有镜像源

没有此镜像源,无法成功下载docker

3、安装Docker-CE并设置环境

4、镜像加速(到阿里云镜像加速寻找自己的加速器)

 

5、网络优化

 

四、Docker镜像操作

1、下载镜像:Docker pull 

[root@server1 docker]# docker pull nginx

[root@server1 docker]# docker pull tomcat

2、查看镜像:docker images

[root@server1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              bc9a0695f571        17 hours ago        133MB
tomcat              latest              e0bd8b34b4ea        6 days ago          649MB

3、删除镜像:docker rmi

[root@server1 docker]# docker rmi tomcat

[root@server1 docker]# docker rmi nginx

4、查看镜像详细信息:docker inspect +镜像名称或镜像ID

[root@server1 docker]# docker inspect e0bd8b34b4ea

5、添加新标签:docker tag

[root@server1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              e0bd8b34b4ea        6 days ago          649MB
[root@server1 docker]# docker tag tomcat:latest tomcat:web
[root@server1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              e0bd8b34b4ea        6 days ago          649MB
tomcat              web                 e0bd8b34b4ea        6 days ago          649MB

docker添加新标签后,该镜像有多重标签时,rmi+镜像IP无法删除,可通过rmi+镜像名称+标签将其中一个名称删除,当镜像只有一个名称和标签时,可将该镜像删除

6、导出镜像 docker save -o 保存位置 镜像名称

[root@server1 docker]# docker save -o /opt/tomcat tomcat:latest
[root@server1 docker]# ls /opt
containerd  rh  tomcat

7、载入镜像  docker load <

[root@server1 docker]# docker load < /opt/tomcat
Loaded image: tomcat:latest

五、Docker容器操作

1、查看正在运行容器 docker ps 

   查看所有容器 docker ps-a(列出所有的容器,包括未运行的容器)

2、创建容器 docker create -it 

[root@server1 docker]# docker create -it nginx:latest /bin/bash

[root@server1 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9e7c2a64746f        nginx:latest        "/docker-entrypoint.…"   47 seconds ago      Created                                 youthful_gauss

  

3、启动容器  docker start +容器ID

[root@server1 docker]# docker start 9e7c2a64746f
9e7c2a64746f
[root@server1 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
9e7c2a64746f        nginx:latest        "/docker-entrypoint.…"   3 minutes ago       Up 45 seconds       80/tcp              youthful_gauss

创建容器一气呵成(docker create + docker start)

[root@server1 docker]# docker run -itd centos:7 /bin/bash
e2b83449a581b708f49a9d5a4b9ccd8ccd4c3486088f569f609da56d9f337e9d
[root@server1 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e2b83449a581        centos:7            "/bin/bash"              10 seconds ago      Up 9 seconds                            quirky_perlman
c912cb86dd8d        nginx:latest        "/docker-entrypoint.…"   28 minutes ago      Up 27 minutes       80/tcp              interesting_hertz

4、进入容器 docker exec -it +ID / bin/bash

[root@server1 docker]# docker exec -it 9e7c2a64746f /bin/bash
root@9e7c2a64746f:/# ls
bin  boot  dev docker-entrypoint.d  docker-entrypoint.sh  etc home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

5、导出容器

[root@server1 docker]# docker export 6b5740016e3c > /opt/nginx_c

6、导入容器(会生成镜像,而不会创建容器)

[root@server1 docker]# cat /opt/nginx_c | docker import - nginx:jiu

7、删除容器(容器必须为停止状态)

[root@server1 docker]# docker stop ff30ed7850a1
ff30ed7850a1
[root@server1 docker]# docker rm ff30ed7850a1
ff30ed7850a1

8、批量删除容器(删除已退出容器)

[root@server1 docker]#  docker ps -a | awk '{print "docker rm "$1}' | bash
 
输出第一字段
[root@server1 docker]#  docker ps -a | awk '{print "docker rm "$1}'
docker rm CONTAINER
docker rm 6b5740016e3c

原文地址:https://www.cnblogs.com/Xing88/p/14040183.html