docker安装及操作(代码片段)

Lossdate Lossdate     2022-12-07     670

关键词:

一、前置条件

  1. 环境
    案例用虚拟机安装
    CPU :2核心以上
    内存 :至少2G
    硬盘 :50G以上
    CentOS版本 :CentOS7 -> 7.8以上
  2. centos下载
    http://mirrors.aliyun.com/centos/7/isos/x86_64/
    

二、 centos配置

  1. 查看centos系统版本命令
    cat /etc/centos-release
    
  2. 配置阿里云yum源
    # 1.下载安装wget
    yum install -y wget
    
    # 2.备份默认的yum
    mv /etc/yum.repos.d /etc/yum.repos.d.backup
    
    # 3.设置新的yum目录
    mkdir -p /etc/yum.repos.d
    
    # 4.下载阿里yum配置到该目录中,选择对应版本
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    # 5.更新epel源为阿里云epel源(新安装的系统可省略前两步)
    mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup 
    mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup 
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    # 6.重建缓存
    yum clean all 
    yum makecache
    
    # 7.看一下yum仓库有多少包
    yum repolist
    
  3. 升级系统内核
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install -y kernel-lt
    grep initrd16 /boot/grub2/grub.cfg
    grub2-set-default 0
    
    reboot
    
    #P.S. 做好快照备份
    
  4. 查看centos系统内核命令
    uname -r 
    uname -a
    #可以看到升级到了5.4.132 : 5.4.132-1.el7.elrepo.x86_64
    
  5. 其它查看命令
    #查看CPU命令
    lscpu
    #查看内存命令
    free 
    free -h
    free -m
    #查看硬盘信息
    fdisk -l
    
  6. 关闭防火墙
    systemctl stop firewalld 
    systemctl disable firewalld
    
  7. 关闭selinux
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux 
    setenforce 0
    
  8. 网桥过滤
    vi /etc/sysctl.conf
    
    net.bridge.bridge-nf-call-ip6tables = 1 
    net.bridge.bridge-nf-call-iptables = 1 
    net.bridge.bridge-nf-call-arptables = 1 
    net.ipv4.ip_forward=1 
    net.ipv4.ip_forward_use_pmtu = 0
    
    # 生效命令 
    sysctl --system
    
  9. 添加命令自动补全
    # 安装bash-completion
    yum -y install bash-completion bash-completion-extras
    
    # 使用bash-completion
    source /etc/profile.d/bash_completion.sh
    
  10. P.S. 做好快照备份

三、Docker安装

  1. 阿里云开发者平台
    可以参考阿里云官网提供的docker安装教程进行安装

    https://www.aliyun.com/
    
  2. 前置条件

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  3. 添加源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum makecache fast
    
  4. 查看版本

    yum list docker-ce --showduplicates | sort -r
    
  5. 安装

    # 安装最新版
    yum -y install docker-ce
    # 安装指定版本
    语法规则:yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
    yum -y install docker-ce-18.06.3.ce-3.el7 docker-ce-cli.x86_64
    
    #这里安装19.03.9-3
    yum install -y docker-ce-19.03.9-3.el7 docker-ce-cli-19.03.9-3.el7
    
  6. 启动

    systemctl start docker
    systemctl status docker
    
  7. 安装阿里云镜像加速器
    加速器地址:阿里云 -> 控制台 -> 容器镜像服务 -> 镜像工具 -> 镜像加速器
    在这里插入图片描述

    mkdir -p /etc/docker
    
    tee /etc/docker/daemon.json <<-'EOF'
    
        "registry-mirrors": ["https://复制自己的加速器地址.mirror.aliyuncs.com"]
    
    EOF
    
    systemctl daemon-reload 
    systemctl restart docker
    
  8. 设置开机启动

    systemctl enable docker
    
  9. 查看信息

    docker -v 
    docker version
    docker info
    
  10. P.S. 做好快照备份

四、Docker镜像操作

  1. 官网地址
    https://docs.docker.com/engine/reference/run/
    
  2. Docker镜像(image)网址
    https://hub.docker.com/
    
  3. 查看镜像列表
    docker images 
    docker image ls
    
  4. save命令 -> 打包成tar
    docker save tomcat:9.0.20-jdk8-slim > tomcat9.slim.tar
    
  5. load命令 -> 解压成docker镜像
    docker load -i linux.tar 
    docker load < tomcat9.0.20.tar
    
    #--input , -i : 指定导入的文件
    #--quiet , -q : 精简输出信息
    
  6. search命令(不推荐使用 -> 直接官网查)
    docker search tomcat
    
  7. inspect命令
    可以获取镜像的详细信息,其中包括创建者,各层的数字摘要等
    如果想获取其中指定的一项内容,可以通过 -f 来指定
    docker inspect tomcat:9.0.20-jdk8-slim
    docker inspect -f ".Size" tomcat:9.0.20-jdk8-slim
    
  8. history命令
    可以列出各个层的创建信息
    docker history tomcat:9.0.20-jdk8-slim
    
  9. tag命令
    标记本地镜像,将其归入某一仓库
    docker tag tomcat:9.0.20-jdk8-slim lossdate/tomcat:9
    
  10. rmi命令 -> 删除
    docker rmi tomcat:9.0.20-jdk8-slim
    docker image rm tomcat:9.0.20-jdk8-slim
    
    #常用参数
    #-f, -force : 强制删除镜像,即便有容器引用该镜像
    #-no-prune : 不要删除未带标签的父镜像
    
  11. 清理镜像
    docker image prune
    
    #-a, --all : 删除所有没有用的镜像,而不仅仅是临时文件
    #-f, --force :强制删除镜像文件,无需弹出提示确认
    

五、Docker容器操作

  1. 新建并启动容器

    #语法 
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    #运行容器
    docker run -it --rm -p 8080:8080 tomcat:9.0.20-jdk8-slim
    #后台运行容器
    docker run -itd --name tomcat9 -p 8083:8080 tomcat:9.0.20-jdk8-slim
    
    #常用参数
    -d, --detach=false: 后台运行容器,并返回容器ID
    -i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用
    -P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口。不推荐使用该参数
    -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐使用
    -t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    --name="nginx-lb": 为容器指定一个名称
    -h , --hostname="laosiji": 指定容器的hostname
    -e , --env=[]: 设置环境变量,容器中可以使用该环境变量
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
    --link=[]: 添加链接到另一个容器;不推荐使用该参数
    -v, --volume : 绑定一个卷
    --privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities
    --restart=no:指定容器停止后的重启策略
        no:容器退出时不重启
        on-failure:容器故障退出(返回值非零)时重启
        always:容器退出时总是重启,推荐各位小伙伴们使用
    --rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器
    
  2. 容器日志

    #语法
    docker logs [OPTIONS] CONTAINER
    #执行命令
    docker logs -f tomcat9
    
    #常用参数
    -f : 跟踪日志输出
    --tail :仅列出最新N条容器日志
    
  3. 删除容器

    #语法
    docker rm [OPTIONS] CONTAINER [CONTAINER...]
    
    #需要先停止运行中的容器再删除,否则无法删除容器
    docker stop tomcat9
    #按照容器名称删除 
    docker rm tomcat9
    #按照容器ID删除 
    docker rm 8dd95a95e687
    
    #常用参数
    -f :通过 SIGKILL 信号强制删除一个运行中的容器
    -l :移除容器间的网络连接,而非容器本身
    -v :删除与容器关联的卷
    
  4. 查看容器列表

    #语法
    docker ps [OPTIONS]
    #查看运行中的容器
    docker ps
    #查看所有容器
    docker ps -a
    
    #常用参数
    -a :显示所有的容器,包括未运行的
    -q :只显示容器编号
    
    #实用技巧
    #停止所有运行容器
    docker stop $(docker ps -qa)
    #删除所有的容器
    docker rm $(docker ps -aq)
    docker rm $(docker stop $(docker ps -q))
    #删除所有的镜像
    docker rmi $(docker images -q)
    
  5. 创建容器
    创建一个新的容器但不启动它

    #语法
    docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
    #执行命令
    docker create -it --name tomcat9 -p tomcat:9.0.20-jdk8-slim
    
  6. 启动、关闭、重启容器

    #语法
    docker start [OPTIONS] CONTAINER [CONTAINER...]
    docker stop [OPTIONS] CONTAINER [CONTAINER...]
    docker restart [OPTIONS] CONTAINER [CONTAINER...]
    #执行命令
    docker start tomcat9
    docker stop tomcat9
    docker restart tomcat9
    
  7. 进入容器
    在运行的容器中执行命令

    #语法
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    #执行命令
    	docker exec -it [id] /bin/bash
        
        #有bash命令的linux系统:例如centos
        docker exec -it tomcat9 /bin/bash
        
        #没有bash命令的linux系统:例如alpine系统
        docker exec -it tomcat9 sh
    
    #退出
    exit
        
    #常用参数
    -i :即使没有附加也保持STDIN 打开
    -t :分配一个伪终端
    
  8. 查看容器

    #语法
    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    #执行命令
    docker inspect tomcat9
    
    #常用参数
    -f :指定返回值的模板文件
    -s :显示总的文件大小
    --type :为指定类型返回JSON
    
  9. 更新容器

    #语法
    docker update [OPTIONS] CONTAINER [CONTAINER...]
    
    #更新容器restart策略
    docker update --restart always tomcat9
    
  10. kill

    #语法
    docker kill [OPTIONS] CONTAINER [CONTAINER...]
    #执行命令
    docker kill tomcat9
    
    #常用参数
    -s :向容器发送一个信号
    

六、nginx安装

  1. 官网地址
    https://hub.docker.com/_/nginx
    
  2. 拉取镜像
    docker pull nginx:1.20.1-alpine
    
  3. 备份镜像(可省略)
    docker save nginx:1.20.1-alpine -o nginx:1.20.1-alpine.tar
    
  4. 导入镜像(可省略)
    docker load -i nginx:1.20.1-alpine.tar
    
  5. 运行镜像
    docker run -itd --name nginx -p 80:80 nginx:1.20.1-alpine
    
    #进入容器
    docker exec -it nginx sh
    #配置文件目录
    cat /etc/nginx/nginx.conf
    #查看html目录
    cd /usr/share/nginx/html
    
  6. 测试
    访问:http://192.168.200.128/

七、mysql安装

  1. 官网地址
    https://hub.docker.com/_/mysql
    
  2. 拉取镜像
    docker pull mysql:5.7.34
    
  3. 备份(略)
  4. 运行镜像
    -e , --env=[]: 设置环境变量,容器中可以使用该环境变量
    官网中给出进入容器的第三种方式bash(前边有/bin/bash,sh) 向my.cnf文件中追加相关配置项
    docker run -itd --name mysql --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.34 --character-set-server=utf8 --collation-server=utf8_general_ci
    
  5. 测试
    #进入容器
    docker exec -it mysql bash
    #登录mysql
    mysql -uroot -p
    #输入密码
    123456
    
    use mysql; 
    show databases;
    #退出mysql
    exit
    
    cat /etc/issue
    #返回信息:Debian GNU/Linux 10 \\n \\l
    
    #查看日志
    docker logs mysql
    
    #退出容器
    exit
    

八、zookeeper安装

  1. 官网地址
    https://hub.docker.com/_/zookeeper
    
  2. 拉取镜像
    docker pull zookeeper:3.7.0
    
  3. 备份(略)
  4. 运行镜像(单机版)
    docker run -itd --name zookeeper --restart always -p 2181:2181 zookeeper:3.7.0
    
    #进入容器
    docker exec -it zookeeper /bin/bash
    cat /etc/issue
    #返回信息:Debian GNU/Linux 10 \\n \\l
    
  5. ZooInspector测试
    #下载地址
    https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
    
    #进入目录ZooInspector\\build,运行zookeeper-dev-ZooInspector.jar
    #点击左上角连接按钮,输入zk 服务地址:ip或者主机名:2181
    #点击OK,即可查看ZK节点信息
    java -jar zookeeper-dev-ZooInspector.jar
    
    在这里插入图片描述
    在这里插入图片描述

九、 ActiveMQ安装

  1. 官网地址
    https://hub.docker.com/r/webcenter/activemq
    
  2. 拉取镜像
    在这里插入代码片docker pull webcenter/activemq:5.14.3
    
  3. 备份(略)
  4. 运行镜像(单机版)
    61616为ActiveMQ的外部访问端口, 8161为web页面访问端口
    docker run -itd --name activmq --restart always -p 61616:61616 -p 8161:8161 webcenter/activemq:5.14.3
    
    #进入容器
    docker exec -it activmq /bin/bash
    cat /etc/issue
    #返回信息: Ubuntu 15.10 \\n \\l
    
  5. 测试
    访问管理界面
    http://192.168.200.128:8161/
    
    登入(admin/admin)
    在这里插入图片描述

docker概述及安装(代码片段)

docker概述及安装docker概述docker的核心概念安装dockerDocker镜像操作Docker容器操作docker概述Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级... 查看详情

docker的安装镜像操作容器操作及资源控制(代码片段)

Docker概述Docker是在linux容器里运行应用的开源工具,是一种轻量级的虚拟机。Docker包含三大核心概念,分别是:镜像、容器和仓库。Docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的... 查看详情

docker安装及操作(代码片段)

一、前置条件环境案例用虚拟机安装CPU:2核心以上内存:至少2G硬盘:50G以上CentOS版本:CentOS7->7.8以上centos下载http://mirrors.aliyun.com/centos/7/isos/x86_64/二、centos配置查看centos系统版本命令cat/etc/centos-release配置阿里... 查看详情

docker架构镜像及容器的安装和基本操作(代码片段)

Docker概念Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机。Docker的宗旨:Build,ShipandRunAnyAPP,Anywhere,即通过对应用组件的分装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次分装,到处运行”... 查看详情

docker基础命令详解——镜像及容器操作(代码片段)

Docker基础命令详解——镜像及容器操作前言?上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。?当然,docker的相关命令非常多... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

docker基本管理(容器及镜像操作)(代码片段)

Docker基本管理(容器及镜像操作)一、Docker概述设计宗旨优点容器在内核中支持2种重要技术二、Docker与虚拟机的区别三、Docker的核心概念镜像容器仓库总结四、安装Docker五、Docker镜像操作1.搜索镜像2.获取镜像3.镜像加速... 查看详情

docker核心概念安装端口映射及常用操作命令,详细到令人发指。(代码片段)

Docker简介 Docker是开源应用容器引擎,轻量级容器技术。基于Go语言,并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux系统上,也可以实现虚拟... 查看详情

elasticsearch7.8.0docker安装及入门最基本操作(代码片段)

Docker安装ElasticSearch拉取镜像#最新版本7,8.0dockerpullelasticsearch:7.8.0启动集群#基本启动命令#-e"discovery.type=single-node"单节点集群#-eES_JAVA_OPTS="-Xms512m-Xmx512m"制定运行参数,不然如果机器内存太小,启动后会非常卡顿#--name 查看详情

docker简单了解及安装使用(代码片段)

docker一、概述1.1设计宗旨1.2特点1.3Docker与虚拟机的区别1.4Docker核心概念镜像容器仓库二、服务安装2.1准备工作2.2安装docker安装依赖包设置阿里云镜像源安装Docker-CE并设置为开机自动启动查看版本信息三、docker镜像操作3.1搜索镜像... 查看详情

docker简单了解及安装使用(代码片段)

docker一、概述1.1设计宗旨1.2特点1.3Docker与虚拟机的区别1.4Docker核心概念镜像容器仓库二、服务安装2.1准备工作2.2安装docker安装依赖包设置阿里云镜像源安装Docker-CE并设置为开机自动启动查看版本信息三、docker镜像操作3.1搜索镜像... 查看详情

docker实践:数据持久化及共享(代码片段)

环境说明:主机名操作系统版本IP地址docker版本ubuntu1604Ubuntu16.04.5172.27.9.3118.09.2ubuntu安装详见:Ubuntu16.04.5以lvm方式安装全记录docker安装详见:Ubuntu16.04安装Docker?在Linux上运行的Docker有三种不同的方式将数据从DockerHost挂载到Docker容... 查看详情

docker基础理论及安装部署(镜像与容器的基本操作注解)(代码片段)

Docker一、前言理论概述1.1背景1.2Docker是什么1.4Docker的优势及意义1.5隔离是如何实现的二、Docker的使用场景三、Docker引擎(DockerEngine)四、Docker架构(Dockerarchitecture)五、Docker核心概念六、容器和虚拟机区别七、控... 查看详情

docker基础理论及安装部署(镜像与容器的基本操作注解)(代码片段)

Docker一、前言理论概述1.1背景1.2Docker是什么1.4Docker的优势及意义1.5隔离是如何实现的二、Docker的使用场景三、Docker引擎(DockerEngine)四、Docker架构(Dockerarchitecture)五、Docker核心概念六、容器和虚拟机区别七、控... 查看详情

docker基本管理(代码片段)

Docker基本管理文章目录Docker核心概念Docker镜像操作Docker容器操作Docker概述Docker是什么?是一种轻量级的“虚拟机”在Linux容器里运行应用的开源工具Docker的使用场景打包应用程序简化部署可脱离底层硬件任意迁移Docker的核心概念... 查看详情

docker镜像的创建及上传(代码片段)

Docker镜像的创建及上传Docker镜像介绍Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中... 查看详情

什么是dockerdocker架构及docker安装卸载(代码片段)

(目录)初识Docker1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦1.1.应用部署的环境问题大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:1.2.Docker解决依赖兼容问题Docker... 查看详情

docker教程-1-学习及安装docker(代码片段)

目录1、Docker介绍1.1 Docker的来源1.2 Docker是什么1.3 Docker特点1.4 Docker的应用场景1.5 Docker的优势2、Docker版本及安装要求2.1Docker版本介绍2.2Docker安装要求3、Docker的核心概念3.1 Docker引擎3.2Docker的组成4、LinuxUbuntu 安装Docker4.1查看系... 查看详情