目录
docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google推出的Go语言实现并遵从 Apache2.0 协议开源。
2.1 Docker镜像与容器
镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker声明周期中的构建部分。镜像是基于联合文件系统中的一种层式架构,由一系列指令一步步构建出来。
Docker可以帮助你构建和部署容器,你只需要把你自己的应用程序或者服务打包放进容器即可。容器是基于镜像的,容器中可以运行一个或多个进程,我们可以认为镜像是Docker声明周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于镜像启动,一旦容器启动完成之后,我们就可以登录到容器中安装自己需要的软件或者服务。(简单理解为:镜像是容器的一种模板,对于一种镜像而言,它可以有多个容器。就像java中的类一样,一个类可以有多个对象,类就就相当于我们的镜像,对象就相当于容器)
Docker官方建议在Ubuntu中安装,因为Docker是属于Ubuntu发布的,而且一般Docker出现问题是最先更新或者打补丁的。在很多版本的Centos中是不支持更新最新的一些补丁包的。
但由于我自己的环境是Centos的,所以在这里我是在Centos中安装的,建议安装在Centos7.x以上版本。
1 查看当前内核版本(Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker!)
uname -r
我的是4.18.0-305.10.2.el8_4.x86_64符合条件
2 检查并清除系统残余项
sudo yum remove docker \
> > docker-client \
> > docker-client-latest \
> > docker-common \
> > docker-latest \
> > docker-latest-logrotate \
> > docker-logrotate \
> > docker-selinux \
> > docker-engine-selinux \
> > docker-engine
我是新租的服务器,因此没有需要移除的
3安装下载docker的依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4 添加阿里云的软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5 更新yum缓存(为了保证能更新和下载需要的服务)
sudo yum makecache
6 安装并启动Docker
sudo yum -y install docker-ce
只截取最后部分
7 查看是否安装成功(显示其版本号)
docker -v
8 设置开机自启
systemctl enable docker
ustc是老牌的镜像服务提供者。ustc的docker镜像加速器速度很快
mkdir -p /etc/docker
vim /etc/docker/daemon.json
在文件中输入如下内容
{
“registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]
}
1 启动docker
systemctl start docker
2 查看docker状态
systemctl status docker
3 查看docker信息
docker info
4 停止docker
systemctl stop docker
1 查看镜像
docker images
2 搜索镜像
docker search 镜像名称
3 拉取镜像
docker pull 镜像名称
例如:下载centos7镜像(如果后面不加版本号则是默认下载最新的版本)
docker pull centos:7
再次查看我们的镜像
4 删除镜像
docker rmi 镜像ID
为了测试我又重新拉取了两个镜像
查看所有的镜像:docker images -q
5d0da3dc9764
05d3c1e2d0c1
删除所有的镜像:docker rmi '5d0da3dc9764 05d3c1e2d0c1'
1 查看正在进行的容器
docker ps
2 查看所有的容器
docker ps -a
3 查看最后一次运行的容器
docker ps -l
4 查看停止的容器
docker ps -f status=exited
创建容器命令:
docker run
-i :表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数之后,容器创建就能登录进去。即分配一个伪终端
--name:为创建的容器命名(容器名称不能重复)
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好是做目录映射,在宿主机上做修改,然后共享到容器上
-p:表示端口映射时 ,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做端口映射
1 交互式方式创建容器(-i-t可以缩写成-it)
docker run -it --name=容器名称 镜像名称:标签/bin/bash
如果是拉取的最新的镜像,不用加标签
docker run -it --name=容器mycentos1 centos /bin/bash
发现交互式方式创建容器之后查看容器报错:
原因是:这种方式相当于在宿主机的centos上运行了一个centos的容器,而在这个容器中没有docker,所有不能运行相关的命令了。
2 守护式方式创建容器
docker run -di --name=mycentos2 centos
进入容器:
docker exec -it mycentos2 /bin/bash
注意:
1)用交互方式去创建容器的时,创建完成之后就相当于直接进入到容器中进行操作,就不能对宿主机进行操作了
2)用守护式方式创建容器时,创建完成之后并不会直接进入容器中,此时依然可以对宿主机进行操作,如果想进入容器,可执行上述命令。并且这种方式创建之后再退出,在后台依然是运行的状态
1 关闭容器
docker stop 容器ID
2 开启容器
docker start 容器ID
3 将文件从宿主机目录拷贝到容器目录
docker cp 需要拷贝的文件名称 容器id:需要拷贝到的容器目录
例如:docker cp docker-client 85fa3cef90e1:/usr/local
4 将容器中文件拷贝到宿主机中
docker cp 容器名称:容器目录/文件名称 将要拷贝到宿主机去的文件名称
例如: docker cp mycentos2:/usr/local/docker-client docker-client2
5 目录挂载
可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样就可以通过修改宿主机的某个目录的文件从而去影响容器
docker run -di -v 宿主机目录:容器目录 --name=容器名称 镜像名称
docker run -di -v /usr/local/mydata/:/usr/local/data --name=mycentos3 centos
6 删除容器
注意:不能删除正在运行的容器
docker rm 容器名称/容器id
7 查看容器IP地址
查看容器内各种数据:
docker inspect 容器名称(容器id)
查看IP地址:
docker inspect --format='{ {.NetworkSettings.IPAddress}}' 容器名称
1 拉取镜像
docker pull rabbitmq
2 守护方式创建容器并且映射端口
docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq
3 进入容器
docker exec -it rabbitmq /bin/bash
4 安装rabbitmq的UI插件
rabbitmq-plugins enable rabbitmq_management
最后成功访问(浏览器上输入:linuxip:15672):
想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。
文章浏览阅读447次。无敌免责声明:本文主要用于学习技术,切不可用于非法盈利目的,不可用于商业,不可攻击该服务器先放出结果镇楼:{'nickname': 'Dear-迪丽热巴', '抖音ID': '274110380', 'work': '演员', 'signature': '先定一个能达到的小目标,比方说来句签名', '关注数量': '0', 'fans': '5130.4w', 'zan': '17058.8w..._douyin有哪些反爬策略
文章浏览阅读5.7k次。SecureCRT远程连接Linux服务器文章目录_securecrt 护眼色
文章浏览阅读1.5k次。Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7CentOS7安装任何软件,比如yum -y install ansible出现错误信息:Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7名词解释:EPEL:extra packages for enterprise l..._couldn't open file /etc/pki/rpm-gpg/rpm-gpg-key-epel-7
文章浏览阅读1.9k次,点赞2次,收藏2次。一键自动导入设置。将以下内容保存成reg文件,如a.reg,双击该文件自动导入设置。Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCMDHere]"ShowBasedOnVelocityId"=dword:00639bc8[HKEY_CLASSES_ROOT\..._右键 在windows终端打开
文章浏览阅读9.1k次。# 1. 删除根目录下的,需要用管理员权限sudo rm -rf /Applications/VMware\ Fusion.appsudo rm -rf /Library/Application\ Support/VMwaresudo rm -rf /Library/Preferences/VMware\ Fusionsudo rm -rf /Library/Logs/VMware/s..._macbook中vmware fusion怎么卸载
文章浏览阅读3.5k次。forEach()方法用于调用数组的每个元素(循环遍历数组中的每一个元素),并将元素传递给回调函数。它内部的回调函数可以传入三个参数:function(item, index, arr)item为必填参数,表示当前元素index为可选参数,表示当前元素的索引arr同样为可选参数,表示当前元素所属的数组对象(正在遍历的这个数组)。forEach源码实现:Array.prototype.myForEa..._js递归遍历多维数组
文章浏览阅读4.6k次。data.tsv> pathway = read.table("data.tsv",header = T, sep="\t")> library(ggplot2) > p = ggplot(pathway,aes(Pvalue,Pathway))> p=p + geom_point() > p=p + geom_point..._pathway<-read.table("david.txt",sep = "\t",header = t)
文章浏览阅读1.1k次。零. 概述主要介绍下蓝牙协议栈(bluetooth stack)传统蓝牙音频协议之高质量音频分布协议(A2DP) 连接播放音乐断开流程(被连接)介绍一. 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等第三篇:传统蓝牙._蓝牙a2dp怎么判断是否正在播放
文章浏览阅读1.8k次。备注:源码对应px4v1.5.5版本,源码链接为https://github.com/PX4/Firmware/blob/v1.5.5/src/modules/mc_att_control/mc_att_control_main.cpp 因为文章较长,在此只贴出文章链接,大家可以前往阿木实验室官网观看,喜欢的也可以下载PDF文档哦。_mc_att_control_main.cpp
文章浏览阅读1.7k次。C语言的函数是什么?_c怨言的函数含义
文章浏览阅读819次。参考ROS与激光雷达入门教程-RS-lidar-16雷达的rosbag包制作,Turbot-SLAM入门教程-实现cartographer 3D建图(多线雷达rslidar-16版)一. 录制rosbag包新终端,启动turlebot2底盘roslaunch turtlebot_bringup minimal.launch新终端,启动rslidar雷达roslaunch rs..._2018-10-16-17-45-53.bag下载
文章浏览阅读8.5k次,点赞2次,收藏9次。在C语言中10的N次方怎么表示?10的N次方为1e10也可写成1e+10(如果是负N次方的话就把加号变成减号)e大小写都可以需要注意的是e前面必须有一个数字不然的话就不合法.\x0d另外可以用函数表示在c语言中求x的y次方可用powC语言;已知E=1+1/1!+1/2!+1/3!+.,求E的近似值,要求最后一项的值小于10的负6次方.#include"stdio.h"voidmain(void){..._c语言10的负10次方怎么写