Docker_docker -it-程序员宅基地

技术标签: # docker  java  

目录 

1 什么是docker

2 Docker相关组件

3 Docker安装

3.1 安装docker

​ 3.2 设置ustc 镜像

 3.3 docker 启动与停止

4 docker镜像与容器相关命令

4.1 docker镜像相关命令

 4.2 docker 容器相关命令

4.2.1 查看容器

4.2.2  创建与启动容器

4.2.3 其他先关操作命令

 5 安装rabbitMq

1 什么是docker

docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google推出的Go语言实现并遵从 Apache2.0 协议开源。

2 Docker相关组件

2.1 Docker镜像与容器

镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker声明周期中的构建部分。镜像是基于联合文件系统中的一种层式架构,由一系列指令一步步构建出来。

        Docker可以帮助你构建和部署容器,你只需要把你自己的应用程序或者服务打包放进容器即可。容器是基于镜像的,容器中可以运行一个或多个进程,我们可以认为镜像是Docker声明周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于镜像启动,一旦容器启动完成之后,我们就可以登录到容器中安装自己需要的软件或者服务。(简单理解为:镜像是容器的一种模板,对于一种镜像而言,它可以有多个容器。就像java中的类一样,一个类可以有多个对象,类就就相当于我们的镜像,对象就相当于容器)

3 Docker安装

3.1 安装docker

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

 3.2 设置ustc 镜像

ustc是老牌的镜像服务提供者。ustc的docker镜像加速器速度很快

mkdir -p /etc/docker

vim /etc/docker/daemon.json

在文件中输入如下内容

{

“registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

}

 3.3 docker 启动与停止

1 启动docker

systemctl start docker

2 查看docker状态 

 systemctl status docker

3 查看docker信息 

docker info

4 停止docker 

systemctl stop docker

4 docker镜像与容器相关命令

4.1 docker镜像相关命令

1 查看镜像

docker images

  • REPOSITORY:镜像名称
  • TAG:镜像标签
  •  IMAGE ID :镜像id
  • CREATED:镜像的创建时间(不是获取该镜像的日期)
  • SIZE: 镜像大小

2 搜索镜像

docker search 镜像名称

  •  NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

3 拉取镜像

docker pull 镜像名称

例如:下载centos7镜像(如果后面不加版本号则是默认下载最新的版本)

docker pull centos:7

再次查看我们的镜像

4 删除镜像 

  • 按照镜像id删除镜像

docker rmi 镜像ID

  • 删除所有镜像

为了测试我又重新拉取了两个镜像 

查看所有的镜像:docker images -q

5d0da3dc9764
05d3c1e2d0c1

删除所有的镜像:docker rmi '5d0da3dc9764 05d3c1e2d0c1' 

 4.2 docker 容器相关命令

4.2.1 查看容器

1 查看正在进行的容器

docker ps

2 查看所有的容器 

docker ps -a

3 查看最后一次运行的容器 

docker ps -l        

4 查看停止的容器

docker ps -f status=exited 

4.2.2  创建与启动容器

创建容器命令:

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)用守护式方式创建容器时,创建完成之后并不会直接进入容器中,此时依然可以对宿主机进行操作,如果想进入容器,可执行上述命令。并且这种方式创建之后再退出,在后台依然是运行的状态

4.2.3 其他先关操作命令

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}}' 容器名称

 5 安装rabbitMq

 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):

想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_50652600/article/details/123590676

智能推荐

《封号码罗》python爬虫之抖音分享页破解字体反爬虫进阶实战(六)_douyin有哪些反爬策略-程序员宅基地

文章浏览阅读447次。无敌免责声明:本文主要用于学习技术,切不可用于非法盈利目的,不可用于商业,不可攻击该服务器先放出结果镇楼:{'nickname': 'Dear-迪丽热巴', '抖音ID': '274110380', 'work': '演员', 'signature': '先定一个能达到的小目标,比方说来句签名', '关注数量': '0', 'fans': '5130.4w', 'zan': '17058.8w..._douyin有哪些反爬策略

SecureCRT 设置护眼最佳方案 的字体及颜色_securecrt 护眼色-程序员宅基地

文章浏览阅读5.7k次。SecureCRT远程连接Linux服务器文章目录_securecrt 护眼色

Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7-程序员宅基地

文章浏览阅读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

Windows添加右键在此处打开命令行_右键 在windows终端打开-程序员宅基地

文章浏览阅读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终端打开

Mac 如何干净的卸载 VMware Fusion_macbook中vmware fusion怎么卸载-程序员宅基地

文章浏览阅读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怎么卸载

js用递归遍历多维数组_JS数组的遍历上 (含forEach等方法源码)-程序员宅基地

文章浏览阅读3.5k次。forEach()方法用于调用数组的每个元素(循环遍历数组中的每一个元素),并将元素传递给回调函数。它内部的回调函数可以传入三个参数:function(item, index, arr)item为必填参数,表示当前元素index为可选参数,表示当前元素的索引arr同样为可选参数,表示当前元素所属的数组对象(正在遍历的这个数组)。forEach源码实现:Array.prototype.myForEa..._js递归遍历多维数组

随便推点

Pathway富集分析气泡图-程序员宅基地

文章浏览阅读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)

蓝牙音频双剑客(二)--高质量音频分布协议(A2DP) 连接播放音乐断开流程(被连接)介绍_蓝牙a2dp怎么判断是否正在播放-程序员宅基地

文章浏览阅读1.1k次。零. 概述主要介绍下蓝牙协议栈(bluetooth stack)传统蓝牙音频协议之高质量音频分布协议(A2DP) 连接播放音乐断开流程(被连接)介绍一. 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等第三篇:传统蓝牙._蓝牙a2dp怎么判断是否正在播放

PX4原生固件教程---mc_att_control源码分析(姿态控制)_mc_att_control_main.cpp-程序员宅基地

文章浏览阅读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

C语言的函数是什么?_c怨言的函数含义-程序员宅基地

文章浏览阅读1.7k次。C语言的函数是什么?_c怨言的函数含义

rslidar16 turbot 3d 离线建图_2018-10-16-17-45-53.bag下载-程序员宅基地

文章浏览阅读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下载

C语言负数的小数次方,c语言 10 负次方-程序员宅基地

文章浏览阅读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次方怎么写

推荐文章

热门文章

相关标签