【docker】linux系统docker的安装及使用

一、docker应用的安装

1.1 安装方式

  • Docker的自动化安装,即使用提供的一键安装的脚本,进行安装。

官方的一键安装方式:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装命令:curl -sSL https://get.daocloud.io/docker | sh
执行上述任一条命令,耐心等待即可完成Docker的安装。

  • Docker手动安装(博主用的手动安装)

1.2 安装环境条件

Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)。Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。

lsb_release  -a   #查看系统版本
uname -r          #查看内核版本


#其它查看系统版本命令   cat /etc/os-version   、cat /etc/os-release、cat /etc/redhat-release
#其它查看内核版本方式   cat /proc/version、uname -a

本机linux系统和内核版本:

1.3 手动安装方式

1.3.1 卸载旧版本

如果安装过旧版本,可执行该步骤

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce

1.3.2 安装依赖

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

1.3.3 设置Docker源仓库

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

官方的源地址比较慢,可使用国内比较快的地址:  
阿里云:http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo 清华大学源:https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo

设置之后的结果:

docker-ce.repo内容:

1.3.4 安装

安装版本:docker-ce为社区免费版本。

yum install -y docker-ce docker-ce-cli containerd.io

如果不需要docker-ce-cli或containerd.io可直接执行如下命令

yum install -y docker-ce

1.3.5 检测Docker安装情况

docker version   #查看docker版本

1.3.6 卸载docker

yum remove docker-ce     #删除安装包
rm -rf /var/lib/docker   #删除镜像、容器、配置文件等内容

二、docker服务启停命令

systemctl start  docker   #启动
systemctl stop   docker   #停止
systemctl status docker   #状态
systemctl restart docker  #重启systemctl enable docker     #开机自启
systemctl disenable docker  #关闭开机自启systemctl daemon-reload  #守护进程重启

查看本机docker服务状态:

三、docker的使用

3.1 镜像-常用操作命令

docker search 镜像名        #搜索仓库镜像 如:docker search nginx
docker pull 镜像名:版本号    #拉取镜像   如:docker pull mongo:4.44
docker images               #查看已拉取的所有镜像
docker rmi image_id         #删除镜像

3.2 容器--常用操作命令

3.2.1 docker run 命令(重要)

docker run :创建一个新的容器并运行一个命令

命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker run -it ubuntu /bin/bash   #启动(新)容器docker run --name mynginx -d -p 80:80  nginx  #启动一个新的nginx容器docker run -d -p 3310:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7  #启动一个新的mysql容器docker run -d -p 1521:1521 --name oracle11g \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g  #启动一个新的oracle数据库容器docker run --name nginx01 -d -p 80:80 \
-v $PWD/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/html:/etc/nginx/html \
-v $PWD/log/nginx:/var/log/nginx  nginx     #启动一个新的nginx容器   加了数据卷 -V

3.2.2 docker 其它命令

docker start 容器ID或名字   #启动容器
docker stop  容器ID或名字   #停止容器
docker restart 容器ID或名字 #重启容器
docker ps                  #查看正在运行的容器
docker ps -a               #查看所有容器docker rm container_id     #删除容器
docker exec -it 容器ID|容器name /bin/bash  #进入容器
exit  #退出容器docker inspect  容器ID|容器name            #获取容器/镜像的元数据
#使用方法
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $CONTAINER_ID         #获取容器 IP
docker inspect tomcat7 | grep IPAddress           #获取IP地址

3.2.3 容器数据卷

(1)挂载数据卷

-v  本地目录:容器内目录:权限 如ro        #指定路径挂载
-v  卷名:容器内目录:权限 如rw             #具名挂载
-v  容器内目录:权限 如rw                 #匿名挂载

(2)查看数据卷

docker volume  ls   docker volume  inspect  卷名

(3)查看容器挂载情况

docker inspect nginx01

 docker inspect oracle11g 

(4)数据卷默认位置

注:所有docker容器的卷,没有指定目录情况下(具名挂载和匿名挂载),都在 /var/lib/docker/volumes/ 下。

四、docker深度学习(拓展)

以上三部分,日常使用足矣。下面是更深的学习内容了。防止遗忘,还是记录在这里。

4.1 run 的参数是重点

重点的几个参数,不止以下这些,太多、记不住就不罗列了,有兴趣可以度娘。

-u root  #如果执行docker run 是root用户执行的,生成的container不是root的话,在docker run时加参数

--net="bridge" #容器网络设置:

-e, --env=[]  #指定环境变量,容器中可以使用该环境变量

4.2 Dockerfile文件和docker build

Dockerfile文件和docker build 创建镜像

Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像.

Dockerfile分为四部分:

  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动时执行指令

4.3 docker save 和docker load

上传本地镜像到docker服务器, 和 保存docker服务器里的镜像到本地。

# docker save -o [定义一个tar文件的文件名] [要保存的镜像的id]
docker save -o imagesname.tar dd886f784c2c
# 生成的tar文件存储路径为当前路径下docker load -i imagesname.tar
然后可以再次通过docker images命令查看加载的镜像docker commit [要保存的容器id] [起一个镜像名]   #保存对一个docker容器的改动

4.4 Docker-Compose

  • Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排。
  • Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
  • Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。

多个应用镜像组合在一起, 写在一个配置文件中, 一次写好,处处使用,超方便、超速度。直接就按文件内容部署、编排容器了。自动部署相关应用、创建容器、运行容器。

看图理解比较直观一点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二刷代码随想录|Java版|回溯算法1|回溯基础理论+组合问题

理论 写链表之类的真的很痛苦,赶紧跳到回溯!这次我想结合算法设计这本书,把java版写出来。放在第三部分吧。希望能够在研一完成这项工作! 从一刷总结以下的几个要点: 回溯方法模板性非常强!!可…

企业虚拟机服务器中了lockbit3.0勒索病毒怎么办,lockbit3.0勒索病毒解密处理流程

对于企业来说,企业的数据是企业的核心命脉,关乎着企业的生产与运营的所有工作。随着网络技术的不断发展,网络安全威胁也在不断增加。近期,云天数据恢复中心接到了很多企业的求助,企业的虚拟机服务器遭到了lockbit3.0勒…

Unity MonoBehaviour 生成dll

dllllllllllllll🥓 🥙vs创建类库项目🧀添加UnityEngine、UnityEditor引用🍕添加MonoBehaviour类🦪设置dll生成路径🍿生成dll🍔使用dll中的Mono类 🥙vs创建类库项目 🧀添加…

网络安全攻防红队常用命令

command 收集渗透中会用到的常用命令 。 建议直接[CtrlF]查找 java命令执行 如下编码网站: https://ares-x.com/tools/runtime-exec/ https://r0yanx.com/tools/java_exec_encode/ https://www.bugku.net/runtime-exec-payloads/ 手动编码操作 bash -c {echo,…

网络安全产品之认识安全隔离网闸

文章目录 一、什么是安全隔离网闸二、安全隔离网闸的主要功能三、安全隔离网闸的工作原理四、安全隔离网闸的分类五、安全隔离网闸与防火墙的区别四、安全隔离网闸的应用场景 随着互联网的发展,网络攻击和病毒传播的方式越来越复杂,对网络安全的要求也越…

Nginx进阶篇【五】

Nginx进阶篇【五】 八、Nginx实现服务器端集群搭建8.1.Nginx与Tomcat部署8.1.1.环境准备(Tomcat)8.1.1.1.浏览器访问:8.1.1.2.获取动态资源的链接地址:8.1.1.3.在Centos上准备一个Tomcat作为后台web服务器8.1.1.4.准备一个web项目,将其打包为war8.1.1.5.启动tomcat进…

C# 中比较时间的大小,看当前时间处于哪个时间段

文章目录 比较时间的大小初始数据转换成TimeSpan格式,以进行比较。更新一下时间当前时间在哪个时间段自定义时间在哪个段中? 代码如诗系列。 C# 中比较两个时间的大小(不含日期DateTime),仅使用时间模块。C# 中看当前时…

基于GPT3.5逆向 和 本地Bert-Vits2-2.3 的语音智能助手

文章目录 一、效果演示二、操作步骤三、架构解析 一、效果演示 各位读者你们好,我最近在研究一个语音助手的项目,是基于GPT3.5网页版的逆向和本地BertVits2-2.3 文字转语音,能实现的事情感觉还挺多,目前实现【无需翻墙&#xff0…

ubuntu20.04 安装ROS2 记录

主要参考B站古月居的ROS2入门21讲 和 以下链接(基本和视频上一致) ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客 但是中间有些需要注意的地方, 1,添加源 步骤中提到 sudo curl -sSL https://raw.githubuserconten…

LaTeX基础使用【系列四】

🌈个人主页:godspeed_lucip 🔥 系列专栏:LaTeX基础使用 🦄1 LaTeX的多行数学公式🐠1.1 导入包🐠1.2 gather环境:多行公式🐠1.3 gather\* :无编号公式&#x1…

Codeforces Round 921 (Div. 2)

A. We Got Everything Covered! 题意:有任意由前k个字母组成的长度为n的字符串s1,你需要构建一个字符串s2,使s1恒为s2的子串(注意是子串,不是连续子串) 分析:我们可以构造n组字符串&#xff0c…

深入Pyecharts:桑基图绘制与炫酷效果实战【第38篇—python:桑基图】

文章目录 深入Pyecharts:桑基图绘制与炫酷效果实战桑基图简介安装 Pyecharts简单桑基图的绘制自定义桑基图的炫酷效果高级样式定制 多组数据桑基图的展示动态桑基图的绘制结合真实数据的桑基图案例导出和分享进阶应用:桑基图与其他图表的组合总结 深入Py…

代码随想录算法训练59 | 单调栈part02

503.下一个更大元素II 这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做 代码随想录 42. 接雨水 接雨水这道题目是 面试中特别高频的一道题,也是单调栈 应用的题目,大家好好做做。 建议是掌握 双指针 和单调栈,因为在面…

Ps:渐变编辑器

渐变编辑器 Gradient Editor可用于创建和编辑自定义渐变,它提供了详细的控制选项,能够精确地调整渐变的颜色、样式和效果。 提示: 拖动边框或边角可缩放渐变编辑器窗口。 预设 Presets 提供了大量的渐变预设。还可通过右侧按钮新建 New、导入…

LC 2861. 最大合金数

2861. 最大合金数 难度: 中等 题目大意: 假设你是一家合金制造公司的老板,你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用,并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建…

python在线聊天室(带聊天保存)

python Socket在线聊天室(带聊天保存) 需求功能 1.聊天信息保存功能(服务端会把信息保存到一个txt里面) 2.使用pyqt5框架作为一个可视化界面 3.具备一个服务端和多个客户端的功能 4.具备离线加入黑名单(离线踢出) 5.具备在线加入黑名单(在线加入黑名单被踢出) 6.具备群聊功能…

搜索<1>——DFS与回溯

前言:本系列(搜索)博客主要介绍的是用DFS解决一些问题,并不是图论中的DFS dfs相信大家都有了解,TA是一个图论中的算法。 中心思想就是:只要干不死,就往死里干! 具体来说,就是只要符合要求,就一直往前搜,…

算法训练营Day59(单调栈2)

503.下一个更大元素II 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 提醒 这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做 class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:dp [-1] * len(n…

什么是网络?

你是一台电脑,你的名字叫 A 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来。 用一根网线连接起来怎么就能&…

【大数据】Flink 架构(一):系统架构

Flink 架构(一):系统架构 1.Flink 组件1.1 JobManager1.2 ResourceManager1.3 TaskManager1.4 Dispatcher 2.应用部署2.1 框架模式2.2 库模式 3.任务执行4.高可用设置4.1 TaskManager 故障4.2 JobManager 故障 Flink 是一个用于状态化并行流处…