docker安装及使用

一、docker优点及作用

优点:

  • 基础镜像MB级别
  • 创建简单
  • 隔离性强
  • 启动速度秒级
  • 移植与分享放便

作用:资源隔离

  • cpu、memory资源隔离与限制
  • 访问设备隔离与限制
  • 网络隔离与限制
  • 用户、用户组隔离限制

二、docker安装

2.1.配置yum源

bash 复制代码
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2.2 安装docker

bash 复制代码
yum install -y docker-ce docker-ce-cli containord.io

docker-ce:docker服务器,社区版
docker-ce-cli:操作docker的命令行
containord.io:docker容器的运行环境

2.3 启动docker,并设置为开机自动启动

启动docker

bash 复制代码
systemctl start docker

设置开机启动

bash 复制代码
systemctl enable docker

2.4 配置镜像加速

国内下载国外的镜像有时候会很慢,因此可以更改 docker 配置文件添加一个加速器,可以通过加速器达到加速下载镜像的目的。

bash 复制代码
mkdir -p /etc/docker
vim /ect/docker/deamon.json 
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
systemctl daemon-reload  #重载配置文件
systemctl restart docker #重新启动docker

三、docker基本命令

  • 下载镜像
bash 复制代码
#下载最新版本
docker pull nginx  
#下载指定版本(镜像名:版本号)
docker pull nginx:1.20.1
  • 查看所有镜像
bash 复制代码
docker images
  • 删除镜像
bash 复制代码
docker rmi 镜像名:版本号
docker rmi 镜像id
  • 运行
bash 复制代码
#docker run 设置项 镜像名
# 设置项:--name mynginx:容器名字
# 设置项:-d:后台运行
# 设置项:--restart=always:开机启动
# 设置项:-p:端口映射(-p 88:80,主机88端口的数据会传到容器80端口)
# 设置项:-v 映射数据到外部修改(如果主机路径的数据为空,docker也是空的)
docker run --name mynginx -d --restart=always -p 88:80  -v 主机路径:docker内部路径 nginx
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d --name myredis -p 6379:6379 redis redis-server /etc/redis/redis.conf
  • 查看容器
bash 复制代码
#查看正在运行的容器
docker ps
#查看所有容器
docker ps -a
  • 删除容器
bash 复制代码
#删除停止的容器
docker rm 容器id/名字
#强制删除运行中的容器
docker rm -f 容器id/名字
  • 停止容器
bash 复制代码
docker stop 容器id/名字
  • 启动
bash 复制代码
docker start 容器id/名字
  • 更新容器
bash 复制代码
docker update 容器id/名字 --restart=always
  • 进入容器内部的系统
bash 复制代码
docker exec -it 容器id /bin/bash
  • 提交改变(将自己修改好的镜像提交)
bash 复制代码
docker commit -a "名字" -m "备注" 容器id 新名字:版本
docker commit -a "gmy" -m "备份" d28680903dcb nginxbak:v1.0
  • 查看日志(排错)
bash 复制代码
docker logs 容器名/id  
  • 把容器指定位置的文件复制到主机指定位置
bash 复制代码
docker cp 容器id:路径/文件名 主机路径/文件名
  • 把主机指定位置的文件复制到容器指定位置
bash 复制代码
docker cp 主机路径/文件名 容器id:路径/文件名 
  • 镜像传输(把镜像压缩,用u盘或者scp传到其他服务器)
bash 复制代码
#将镜像保存成压缩包
docker save -o abc.tar nginxbak:v1.0
#在别的机器加载这个镜像
docker load -i abc.tar

四、实战:安装redis

4.1 docker 拉取镜像

bash 复制代码
docker pull redis

4.2 Docker挂载配置文件

1)挂载 redis 的配置文件

2)挂载 redis 的持久化文件(为了数据的持久化)。

本人的配置文件是放在:

  • liunx下redis.conf文件位置:/home/redis/myredis/redis.conf
  • liunx下redis的data文件位置 : /home/redis/myredis/data

4.3 启动redis容器

bash 复制代码
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass qwer1234

(1)--restart=always 总是开机启动

(2)--log是日志方面的

(3)-p 6379:6379 将6379端口挂载出去

(4)--name 给这个容器取一个名字

(5)-v 数据卷挂载

  • /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
  • /home/redis/myredis/data:/data 这个同上

(6)-d redis 表示后台启动redis

(7)redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf

(8)--appendonly yes 开启redis 持久化

(9)--requirepass 000415 设置密码

相关推荐
“码”力全开几秒前
深度解析:基于 Docker 与边缘计算的国产化 AI 视频管理平台,如何通过源码交付实现多协议(GB28181/RTSP)与异构算力解耦?
人工智能·docker·边缘计算
“码”力全开4 分钟前
基于 Docker 容器化与异构计算的工业级视频中台架构:GB28181/RTSP 双协议栈统一接入与源码交付深度解析
docker·架构·音视频
ai产品老杨24 分钟前
Docker分布式部署与GB28181/RTSP全协议汇聚:基于源码交付的异构边缘计算AI视频管理平台架构解析
docker·容器·架构
开开心心就好29 分钟前
小白友好的程序联网封锁实用工具
windows·eureka·计算机外设·rabbitmq·word·excel·csdn开发云
xier_ran35 分钟前
【infra之路】模块三:Kubernetes (上) — 概念、集群搭建、Pod 与 Deployment
云原生·容器·kubernetes
IT策士37 分钟前
第 23篇 k8s之Pod:多容器 Pod 与设计模式(Sidecar 等)
设计模式·容器·kubernetes
ai产品老杨42 分钟前
解耦视频流利器:如何利用 GB28181 与 RTSP 协议统一收敛多厂商设备?一套支持 Docker 部署与源码交付的边缘计算 AI 视频中台深度解析
人工智能·docker·边缘计算
专业白嫖怪9 小时前
什么是docker
运维·docker·容器
qq_4523962314 小时前
第十篇:《Dockerfile 最佳实践与镜像瘦身》
docker
Plastic garden14 小时前
Docker(1)
运维·docker·容器