在这里插入图片描述

前言

Docker是Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
# 

一、概览

1、Docker是什么?

是一种轻量级的“虚拟机”
在L inux容器里运行应用的开源工具

2、Docker与虚拟机的区别

docker虚拟机
资源
启动时间短十几毫秒长几分钟
安全共享内核,不安全系统逻辑隔离,安全
服务一个容器只跑一个服务可以运行多个服务

3、Docker的使用场景

  • 打包应用程序简化部署
  • 可脱离底层硬件任意迁移
  • 例:服务器从腾讯云迁移到阿里云

4、Docker核心概念

  • 镜像是一个面向Docker容器引擎的只读模板
  • 容器是从镜像创建的运行实例
  • 仓库是集中保存镜像的地方

5、CentOS安装Docker的两种方式

  • 使用CURL获得Docker的安装脚本进行安装
  • 使用YUM仓库来安装Docker

二、实验

1、安装docker工具

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

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

yum install -y docker-ce

2、关闭防火墙

systemctl stop firewalld

setenforce 0

3、编辑配置文件

vim /etc/selinux/config

SELINUX=disabled

4、启动服务

systemctl start docker

systemctl enable docker

5、镜像加速

##一定要部署镜像加速#

cd /etc/docker/

tee /etc/docker/daemon.json <<-'EOF' 
{ 
    "registry-mirrors": ["https://sl6elacs.mirror.aliyuncs.com"] 
} 
EOF

systemctl daemon-reload     ##重新加载系统参数

systemctl restart docker

6、启用路由转发功能

vim /etc/sysctl.conf            ##启用路由转发功能

net.ipv4.ip_forward=1

sysctl -p

systemctl restart network

systemctl restart docker

7、docker使用

docker version               ##查看docker版本

docker search nginx     ##搜索nginx镜像(公有仓库)

docker pull nginx          ##下载nginx镜像

docker images               ##查看下载镜像信息

docker inspect 7e4d58f0e5f3                    ##获取镜像信息

docker inspect nginx:latest                        n##获取镜像信息

docker tag nginx:latest nginx:web            ##添加新标签



docker images nginx:latest                        ##查看

docker images | grep nginx                       ##查询关键字过滤

docker rmi nginx:web                                 ##删除

docker rmi 7e4d58f0e5f3                           ##删除镜像,不能删除,有别名的镜像,要把别名删除,才能用id来删除镜像

8、导入导出镜像

cd /opt

docker save -o /opt/nginx nginx:latest     ##存出镜像命名为nginx存在当前目录下

docker rmi nginx:latest                               ##删除镜像

docker load < /opt/nginx                            ##从本地载入镜像

9、容器使用

docker create -it nginx:latest /bin/bash           ##容器创建

docker ps -a                                                          ##查看容器

docker start 7380d166e929                               ##启动容器

docker ps -a                                                          ##查看容器状态为up

docker pull paigeeworld/centos7                      ##启动执行命令查看系统根目录

docker create -it paigeeworld/centos7 /bin/bash

docker start   123

docker run paigeeworld/centos7 /usr/bin/bash -c ls /

//执行完成直接关闭 状态是Exited

docker run -d paigeeworld/centos7 /bin/bash -c "while true;do echo hello;done"

docker ps -a

docker stop 123          //终止运行

docker start 678687687    //一定要是运行状态,才能进入容器

docker exec -it 8938493   /bin/bash   //进入容器

exit     //退出容器

10、容器的导入导出及删除

docker export 6c9aabe7b1e5 > nginx_c      //容器导出

cat nginx_c | docker import - nginx:web    //容器导入(会生成镜像,而不会创建容器)

docker rm 44r34343343                                //删除容器

docker ps -a | awk '{print "docker rm  "$1}' | bash    //批量删除容器

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐