Docker安装以及常用命令

2023-10-31

提示:以下内容均为学习过程中的个人笔记,有用自取,无用勿喷,如有错误欢迎指正

一、什么是docker?

Docker 是采用Linux Container,基于Golang语言 采用apache2.0开源协议存储于GitHub开源的容器管理引擎,并且运用了很多Linux底层的技术,比如Overlay UFS文件系统实现镜像层和可写层之间的联立,当然镜像的分层也是基于此实现的;采用Cgroup作为底层资源限制;采用namespaces作为进程的隔离机制,比如隔离网络栈、主机名、用户名、挂载点等;采用bridge以及iptables的NAT实现容器间、容器和外部之间的网络联通;采用chroot伪根机制实现容器内部的根视图的展现

二、docker的安装

下面以17.03版本docker安装为例

#上传安装包并安装17.03版本docker
yum -y install docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

systemctl enable docker

#docker想要进行网络通信必须要进入防火墙,它们之间要互相调用。如果不进行重载,它们之间的联合度比较低,可能会报错
reboot
systemctl status docker
	
#运行hello-world镜像
docker run hello-world
	
#配置加速器,加速docker镜像下载(阿里加速地址https://kfp63jaj.mirror.aliyuncs.com )
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
#若想更换加速器地址,编辑下面文件替换地址即可
cat /etc/docker/daemon.json   
systemctl restart docker
	
#docker体验:安装wordpress
docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb
docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress
docker exec -it db /bin/bash
mysql -uroot -pexample
create database wordpress;
grant all on *.* to 'wordpress'@'%'  identified by '123456';

三、docker常用命令

#显示docker系统信息,包括UFS信息
docker info
	
#查询镜像
字符界面:docker search 镜像名
Windows:浏览器搜索官方仓库查找
	
#查询所有正在运行的容器(容器唯一标识符:ID和别名)
docker ps 
docker ps -a   #-a选项表示所有容器包含被关闭的
	
#下载docker镜像
docker pull 镜像地址/镜像名
扩展:镜像格式(镜像仓库地址/用户库名/镜像名:版本号),若不加仓库地址则使用默认仓库地址
	
#查看当前镜像,SIZE字段只是参考值
docker images 
注:可以使用镜像名加版本号或者ID前四位作为唯一索引标识符,可以加上--no-trunc\显示完整ID
	
#删除docker镜像,确定容器不再使用户再删除
docker rmi -f 镜像名:版本号 或 ID前四位
	
#删除容器,需先停止容器或者使用-f强制删除
docker stop 容器
docker rm 容器
	
#创建并启动容器
docker run [选项] IMAGE [COMMAND] [ARG]
选项:
#--name=“容器新名字”:为容器指定一个名称
#-d:后台运行容器,并返回容器ID,也即启动守护式容器
#-i:以交互模式运行容器,通常与 -t 同时使用
#-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
#-P:随机端口映射
#-p:指定端口映射
#--restart=always  容器自动启动
#-h x.xx.xx	 	设置容器主机名(域名)
#--dns xx.xx.xx.xx	 设置容器使用的 DNS 服务器
#--dns-search hongfu.com   	DNS 搜索设置,当无法解析域名时自动补齐搜索域
#--add-host hostname:IP		将新增解析记录自动添加到hosts文件中和
#--rm			服务停止时自动删除  
		
例:进入test容器,执行完命令退出后容器自动删除  
docker run --name test -it --rm 镜像ID /bin/bash
		
#--link 被链接容器名  使得容器和被链接容器之间可以相互通信
例如,单台服务器上部署nginx代理三台tomcat
docker run --name tomcat1 -d tomcat
docker run --name tomcat2 -d tomcat
docker run --name tomcat3 -d  tomcat
		
docker run --name nginx -p 80:80 --link tomcat1 --link tomcat2 --link tomcat3 -d nginx
			upstream tomcat {
				server tomcat1:8080;
				server tomcat2:8080;
				server tomcat3:8080;
			}
		 
	
#一键删除所有容器,$()嵌套docker命令,可以将其写成脚本或者设置为别名
docker rm -f $( docker ps -a -q )
	
#查询容器详细信息
docker inspect 容器名   #复制信息通过python进行解析,通过jason显示工具查看
	
#查看容器前台输出信息,不一定是容器日志
docker logs 容器名
	
#查看容器资源占用
docker stats 容器名
	
#在容器中执行命令
docker exec 容器名 要执行的命令
docker exec -it 容器名 /bin/bash 或者/bin/sh #进入容器中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker安装以及常用命令 的相关文章

随机推荐

  • linux jmap命令详解,jmap命令 linux jmap如何使用

    1 linux jmap如何使用 jmap命令可以获得运行中的jvm的堆的快照 从而可以离线分析堆 以检查内存泄漏 检查一些严重影响性能的大对象的创建 检查系统中什么对象最多 各种对象所占内存的大小 命令格式 jmap options pi
  • Linux和Windows火狐浏览器书签无法同步

    前言 装了ubuntu后发现Windows下的firefox书签无法同步 而且都登陆了相同的Google账号 最终发现问题所在 firefox有个全球服务和本地服务 ubuntu下的firefox默认是全球服务的 而windows下的fir
  • 利用do while 循环和 switch 分支语句做一个简易的ATM机

    自己的写的过程体会 第一步 重要的 要检查你的电脑是否联网了 本人在写到第3步时没注意到电脑没联网 就一直在显示不了你想要的结果 本来信誓旦旦说没错啊 就是这样啊 可是就显示不了 后来才发现是网络问题 所以 网络很重要 一把泪 啊 然后呢
  • python收集数据做主神_里纲_[综漫]收集数据做主神小说无防盗章节_作者忘却的悠_新书包网(www.51aslz.com)...

    里包恩怎么了 没什么 只是在想 你做为里包恩的学生 能不能帮我个忙 帮忙 纲不好意思的抓了抓头发 所有的心思都写在了脸上 什么我这么废柴能帮什么忙 虽然我很想帮忙 但是我真的什么都做不好 找里包恩本人更快吧 实在不行还有山本和狱寺他们 不过
  • RequestMapping中produces属性作用

    注解RequestMapping中produces属性可以设置返回数据的类型以及编码 可以是json或者xml RequestMapping value xxx produces application json charset UTF 8
  • mysql如何将表导出到excel

    一 显示当前使用或者指定的database中的每个表的信息 信息包括表类型和表的最新更新时间 show table status 二 mysql如何将表结构导出到excel SELECT TABLE NAME 表名 COLUMN NAME
  • 计算机视觉与深度学习-图像分割-视觉识别任务03-实例分割-【北邮鲁鹏】

    目录 参考 定义 Mark R CNN 结构 思路 Mask R CNN训练阶段使用的Mask样例 Mask R CNN实例分割结果 Mask R CNN检测姿态 参考 论文题目 Mask R CNN 论文链接 论文下载 论文代码 Face
  • 四、在原理图中添加每个元件的封装

    画完每个元件的封装后 回到原理图界面 双击每个原理图元件 在编辑中添加封装 全部添加好右键点击原理图 选择validate pcb 那个 编译原理图文件 会自动检查错误 检查出来可以导出一个错误文档 然后根据文档修正即可 这个编译是将元件的
  • android点击后图片变大,Android实现点击缩略图放大效果

    import android animation Animator import android animation AnimatorListenerAdapter import android animation AnimatorSet
  • 【javascript】获取键盘输入

    获取上下左右键 在JavaScript中 如果我们想要获取键盘中的键对应的键码 可以使用event对象的keyCode属性
  • java连接kafka api_Kafka-JavaAPI(Producer And Consumer)

    Kafka JAVA API Producer和Consumer Kafka 版本2 11 0 9 0 0 producer package com yzy spark kafka import kafka javaapi producer
  • 2008年北大信科研究生复试 机考真题(一)--大数据十进制转换

    描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出 输入 多组数据 每行为一个长度不超过30位的十进制非负整数 注意是10进制数字的个数可能有30个 而非30bits的整数 输出 每行输出对应的二进制数 样例输入 0 1 3
  • LogBack的使用

    需要JAR包 1 slf4j api 1 6 1 jar 2 logback access 0 9 29 jar 3 logback classic 0 9 29 jar 4 logback core 0 9 29 jar 加载顺序 1 l
  • Promise详解

    1 基本概念 Promise是JS异步编程中的重要概念 异步抽象处理对象 是目前比较流行Javascript异步编程解决方案之一 2 Promise的三种状态 pending 对象初始化状态 fulfilled 当调用resolve 成功
  • 计算机管理找不到防火墙,win10系统防火墙服务找不到的具体方案

    win10系统使用久了 好多网友反馈说win10系统防火墙服务找不到的问题 非常不方便 有什么办法可以永久解决win10系统防火墙服务找不到的问题 面对win10系统防火墙服务找不到的图文步骤非常简单 只需要从电脑桌面找到计算机 然后鼠标指
  • Effective C++ 学习笔记 条款06 若不想使用编译器自动生成的函数,就应该明确拒绝

    如想阻止拷贝 但编译器为类声明了拷贝构造函数和拷贝赋值运算符 这样就不能达到目的了 你可以通过将拷贝构造函数和拷贝赋值运算符声明为private的来阻止拷贝 但类的成员函数和友元还是可以调用 此时将它们声明但不定义就行了 这样调用它的函数会
  • 通过href 从http跳转https失效问题 前端解决

    目前 浏览器定位的功能大多数浏览器为了安全需要https协议才可使用 这就需要站点支持https协议 尝试通过a标签跳转至a目录下的index html 发现href中目标地址是https xxx com a 浏览器跳转到https xxx
  • 攻防世界:WEB新手练习区

    题目 https adworld xctf org cn challenges problem set index id 25 rwNmOdr 1678625790128 view source 题目描述 X老师让小宁同学查看一个网页的源代
  • 开源阅读书源_安卓神器

    Hi 新朋友 记得点蓝字关注我们哟 阅读 大家好 我是小昊 今天在论坛看到有人提到这个软件 我才记起来要老早就应该给大家推荐这个软件的 首先这个软件是需要自己添加源的 不加是用不了的哟 如
  • Docker安装以及常用命令

    提示 以下内容均为学习过程中的个人笔记 有用自取 无用勿喷 如有错误欢迎指正 一 什么是docker Docker 是采用Linux Container 基于Golang语言 采用apache2 0开源协议存储于GitHub开源的容器管理引