为什么有Docker

  • 将一整套环境打包封装成镜像,无需重复配置环境,解决环境带来的种种问题。
  • Docker容器间是进程隔离的,谁也不会影响谁。
  • 相较于传统的VM虚拟化方法,Docker的好处是启动速度快,资源利用率高,性能开销小。

Docker中的概念

  • 镜像(Image) :Docker 镜像(Image),就相当于是一个ISO文件系统。比如Centos官方镜像 CentOS-7-x86_64-DVD-2009.iso就包含一个完整的 centos 操作系统环境。
  • 容器(Container) :镜像(Image)和容器(Container)的关系,就像是java面向对象程序设计中的类和实例一样,镜像是类的定义,容器是镜像运行时的实例。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository) :仓库可看成一个代码控制中心,用来保存镜像。

CentOS 7安装Dokcer

  1. 设置Docker镜像源

    yum install -y yum-utils 
    
    yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  2. 安装Docker社区版本

    yum install docker-ce docker-ce-cli containerd.io
  3. 启动Docker

    systemctl start docker
  4. 惯例helloworld: docker run hello-world
    image.png

    Dokcer常用命令

  5. 镜像命令
docker images //列出本地主机上的所有镜像
docker search 【镜像名】//搜索镜像
docker pull 【镜像名】//拉取镜像
docker rmi -f【镜像名】//删除单个镜像
docker rmi -f【镜像名1 镜像名2】//删除多个镜像
docker rmi -f $(docker image -q) //删除全部镜像
  1. 容器命令
docker run -it【镜像名】//以交互模式启动容器
docker run -d【镜像名】//以后台模式启动容器
docker run -d -P 随机端口映射,容器内部端口随机映射到主机的端口
docker run -d -p 指定端口映射,格式为主机端口:容器端口
docker ps //列出当前正在运行的容器
exit //容器停止且退出
ctrl+p+q //容器不停止退出
docker start【容器id/容器名】//(退出容器后)启动容器
docker restart【容器id/容器名】//重启容器
docker stop【容器id/容器名】//停止容器
docker kill【容器id/容器名】//强制停止容器
docker rm 【容器id】//删除容器
docker rm -f $(docker ps -a -q)/ /删除全部容器
docker ps -a -q | xargs docker rm //删除全部容器
docker attach【容器id】//以交互模式进入正在运行的容器
docker exec -it【容器id】【bashshell】//可直接运行命令得到结果跳过进入容器的步骤
docker commit【容器id】【镜像名:版本号】//从容器创建一个新的镜像

更多的命令:# Docker命令大全

Dokcer容器数据卷

容器数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。

  1. 使用命令添加容器数据卷

    docker run -d -v 宿主机文件绝对路径:容器文件绝对路径【镜像名】
  2. 使用DockerFile添加容器数据卷
    通过DockerFile创建的带有VOLUME的镜像,然后创建容器会自动将VOLUME的目录挂载到宿主机默认目录
VOLUME["dataVol1","dataVol2"]
  1. 从另一个容器当中挂载容器中已经创建好的数据卷

    docker run -d --volumes from【容器名】【镜像名】

    DokcerFile

    DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本

    docker build -f【dockerFile路径】-t【镜像名】:版本号 .

    相关指令:# Docker Dockerfile

使用Docker安装redis

  1. 拉镜像

    docker pull redis:3.2

    2.新建本地redis.conf,目的是启动时可以自定义这个配置文件的内容映射到docker中redis的配置文件

    mkdir -p /opt/redis/conf
    cd /opt/redis/conf
    touch redis.conf

    设置密码

image.png

  1. 启动容器

    docker run -p 6379:6379
    -v /opt/redis/data:/data
    -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf
    -d redis:3.2 redis-server /etc/redis/redis.conf
    --appendonly yes
  2. 连接redis

image.png


WillLiaowh
71 声望8 粉丝

世界上最伟大的力量是坚持。