docker卸载命令_Docker入门篇

Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

Docker优势

持续集成、版本控制、可移植性、隔离性和安全

Docker的组成

Docker组成

f3c491fbabc10aa4b34e074beff4c7fe.png
  • 镜像(image):

Docker镜像就相当于是一个文件系统,通俗来说就是为容器用来创建容器的

  • 容器(Container):

Docker 利用容器 (Container) 独立运行的一个或一组应用,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台,可以把容器看做是一个简易版的Linux系统。

容器就相当于Java中的对象,镜像相当于Java中的类

  • 仓库(Repository)

仓库是集中存放镜像文件的场所

仓库注册服务器 (Registry) 上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签

仓库分为公开仓库和私有仓库两种形式

最大的公开仓库是DockerHub存放了数量庞大的镜像供用户下载,国内的公开仓库包括阿里云等

Docker的底层原理

Docker的工作原理

Docker是基于C/S结构的系统,Docker的守护进程运行在Linux服务器(宿主机)上,当我们在Liunx服务器上(Docker-Client)输入Docker相关命令就会被发送给Doker-Server

为什么Docker比VM(虚拟机)快

1、Docker有着比虚拟机更少的抽象层,由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显优势。

2、当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核,因而避免引导、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS(虚拟机中的操作系统),这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个Docker容器只需要几秒钟。

Docker的安装

1.需要Liunx版本为CentOS7.0以上

2.卸载旧版本(非必须项)

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

3.安装Docker所需要依赖

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

4.设置镜像仓库

yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.安装Docker

yum -y install docker-ce

6.设置阿里云镜像加速

9dc662ea4683362e528f40d8da00717d.png
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://qhyb8ixp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

7.开启Dcoker服务

service docker start

8.测试Docker-HelloWorld程序

[root@iZ8vbi9mx98t2s78lyxfpuZ ~]# docker run hello-world 
Unable to find image 'hello-world:latest' locally
docker run hello-worldlatest: Pulling from library/hello-world
0e03bdcc26d7: Already exists
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latestHello from Docker!             --> 出现这句话代表Docker安装没有问题
This message shows that your installation appears to be working correctly.

9.卸载Docker

#1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2. 删除资源 /var/lib/docker 是docker的默认工作路径!
rm -rf /var/lib/docker

Docker帮助命令

1. docker version     # 显示Docker的版本信息
2. docker info           # 显示Docker的系统信息(包含镜像与容器的数量)
3. docker 命令 --help  # 查看帮助(就是显示这个命令有什么可选项)

Docker镜像命令

  1. docker images:显示本机上所有安装镜像
[root@MT ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              470671670cac        4 months ago        237MB
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB# 可选项
docker images -a # 列出所有的镜像
docker images -q # 只显示镜像的id[root@MT ~]# docker images -aq
470671670cac
bf756fb1ae65
  1. docker search:搜索镜像
[root@MT ~]# docker search mysql(镜像名)NAME                              DESCRIPTION                                     STARS
mysql                             MySQL is a widely used, open-source relation…   9553             
mariadb                           MariaDB is a community-developed fork of MyS…   3471 # 可选项
docker search mysql -f=STARS=3000 # 列出镜像星数大于3000的镜像
  1. docker pull:下载镜像
[root@MT ~]# docker pull mysql      # 下载最新版本的MySQL
[root@MT ~]# docker pull mysql:5.7  # 下载指定版本的MySQL
  1. docker rmi:删除镜像
docker rmi -f 镜像id                      # 删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id  # 删除指定的镜像
docker rmi -f $(docker images -aq)       # 删除全部的镜像

Docker容器命令

  1. docker run [可选参数] 镜像名
[root@MT ~]# docker run 可选参数 镜像名# 可选参数
--name=”xxx“    # 容器名字
-d              # 后台模式运行
-it             # 使用交互模式运行,进入容器查看内容
-p(小学)         # 指定端口映射 如:-p 8080(宿主机):8080(容器)
-P(大写)         # 随机端口映射# 测试启动进入与退出容器
[root@MT ~]# docker run -it centos /bin/bash           # /bin/bash 是使用命令行进入
[root@6130f0353526 /]# ls                              # 此时已经进入Docker的CentOS容器
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@6130f0353526 /]# exit
exit
[root@MT ~]#
  1. docker ps [可选参数]:列出运行的容器
[root@MT ~]# docker ps 可选参数# 可选参数
-a       # 列出正在运行和历史运行过的容器
-q       # 列出容器ID[root@MT ~]# docker ps -aq
6130f0353526
895577bc1ae7
f9fc9c23267d
faab3fceb1d3
  1. 退出容器
exit          # 容器直接退出
Ctrl + P + Q  # 容器不停止退出
  1. 删除容器
docker rm -f 容器id              # 删除指定容器(不能删除正在运行的,如需要rm-rf)
docker rm -f $(docker ps -aq)    # 删除所有容器
  1. 启动和停止容器操作
docker start 容器id      # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id       # 停止正在运行的容器
docker kill 容器id       # 强制停止

Docker其它命令

容器后台方式运行

[root@MT ~]# docker run -d centos
748d11ff226983ab8281fc6741087e6a3f349ad03f0cadafcd215aed894978dc
[root@MT ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES# 问题:我们此时已经发现启动CentOS,但是确查不到正在运行的容器# 解释:Docker容器使用后台运行,就必须要有要一个前台进程,Docker发现没有应用,就会自动停止

查看日志

docker logs -tf 容器id             # 查看实时日志  
docker logs -t --tail 数量 容器id  # 查看指定数量的日志 

查看容器中的进程信息

docker top 容器id

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

# 通常我们是使用后台方式运行容器,因为我们可能需要进入容器,修改配置# docker exec -it 容器ID /bin/bash (常用)
# docker attach 容器ID# exec方式:就是类似新开一个窗口连接运行的容器
# attach方式:就是直接连入当前的容器

拷贝容器内文件到宿主机中

docker cp 容器id:文件路径(容器内) 目的路径(宿主机)
[root@MT ~]docker cp 1a9a6785c37c:/home/c.java /home/

Docker安装Nginx

# 1. 搜索镜像 search 建议大家去docker搜索,可以看到帮助文档
docker search nginx
# 2. 拉取镜像 docker pull nginx
docker pull nginx
# 3. 运行测试# -d 后台运行# --name 给容器命名# -p 宿主机端口:容器内部端口(我这里使用阿里云的3344端口,前提要在阿里云安全组开放次端口)
docker run -d --name nginx -p 3344:80 nginx
# 4.查看镜像
docker ps
# 5.测试是否成功
curl localhost:3344 # 或者在浏览器输入ip:3344

Docker安装Tomcat

# 下载tomcat镜像
docker pull tomcat:9.0
# 运行tomcat镜像
docker run -d tomcat -p 3344:8080 tomcat
# 测试
curl localhost:3344  # 此时发现无法访问
# 原因:tomcat容器里面webapps目录下没有文件
# 进入容器
docker exec -it ef41045bea2b /bin/bash
cp -r webapps.dist/* webapps
# 重新测试 在浏览器输入ip:3344 --> 发现成功访问
原文链接:https://developer.aliyun.com/article/768663
作者:Fortuneteller

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

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

相关文章

属于服务器操作系统的是,属于服务器操作系统的是

属于服务器操作系统的是 内容精选换一换裸金属服务器操作系统无法正常启动&#xff0c;操作系统中毒&#xff0c;或裸金属服务器系统运行正常&#xff0c;但需要对系统进行优化&#xff0c;使其在最优状态下工作时&#xff0c;用户可以使用重装裸金属服务器的操作系统功能。重装…

lds天线技术流程图_音箱耳机入门,蓝牙真无线耳机中的LDS天线 「Soomal」

在2019年新一代的真无线耳机中&#xff0c;我们听到了比较多关于“LDS”天线的概念&#xff0c;它到底是什么样子的呢&#xff1f;我们通过漫步者TWS1和TWS5两款真无线耳机拆解&#xff0c;来看看真无线蓝牙耳机天线的样子。其中&#xff0c;TWS1不是LDS天线&#xff0c;而TWS5…

ubuntu修改服务器端口,服务器环境之4:ubuntu14.04安装tomcat,端口修改

一、下载tomcat二、上传服务器并解压1.创建文件夹mkdir /usr/java/tomcatcd /usr/java/tomcat2.上传rz -e弹出窗口中选择下载好的tar.gz文件&#xff0c;点击确认 3.解压tar -xzf apache-tomcat-8.0.36.tar.gz4.修改文件夹名(习惯&#xff0c;可跳过mv apache-tomcat-8.0.36 to…

hashmap为什么线程不安全_什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?...

本文同名博客老炮说Java&#xff1a;https://www.laopaojava.com/&#xff0c;每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料顺便再给大家推荐一套SpringCloud微服务教程&#xff0c;方便学习&#xff1a;SpringCloud微服务电商项目教程 - 老炮说Java-程序员编程资料…

光遇服务器维护都在干什么,光遇:全图毕业后该做什么?老玩家建议,这四件事不做会后悔...

原标题&#xff1a;光遇&#xff1a;全图毕业后该做什么&#xff1f;老玩家建议&#xff0c;这四件事不做会后悔光遇&#xff1a;全图毕业后该做什么&#xff1f;老玩家建议&#xff0c;这四件事不做会后悔前言&#xff1a;大家好&#xff0c;我是喜欢玩游戏、聊游戏的孟婆小叔…

加仓减仓口诀_做短线必备口诀

October短线口诀早上大跌可加仓&#xff0c;早上大涨要减仓下午大涨要减仓&#xff0c;下午大跌次日买上午下跌不买股&#xff0c;逢低加仓T0下午拉高不追涨&#xff0c;逢高减仓T1量价买卖口诀高位无量就拿&#xff0c;就算拿错也要拿高位放量趁早跑&#xff0c;哪怕跑错也要跑…

包无法安装_R语言基础教程——第2章:R下载安装和环境搭建

R语言安装包下载 官网下载R安装包 下载地址为&#xff1a;https://cran.r-project.org 进入链接&#xff0c;如下图所示&#xff0c;在页面顶部提供了三个下载链接&#xff0c;分别对应三种操作系统&#xff1a;Windows、Mac和Linux。请选择自己操作系统对应的链接。这里以Wind…

charat越界返回什么_Java基本语法方法修饰符返回类型参数列表异常列表

方法[method name]定义方法[method]是类的成员之一&#xff0c;(因为在java中&#xff0c;方法不能单独定义&#xff0c;它必须在类之中)。修饰符 返回类型 方法名()[throws 异常类型]{ //方法体}方法名字&#xff1a;只要是一个合法的名字就可以&#xff0c;尽可能有意义。如&…

打包指令_Linux系统常用指令总结

来源 | CSDN 博客作者 | 不撸代码闲得慌&#xff0c;责编 | Carol出品 | CSDN云计算(ID&#xff1a;CSDNcloud)系统的运行级别0&#xff1a;关机1&#xff1a;单用户模式(可以找回丢失的密码)2&#xff1a;多用户状态没有网络服务3&#xff1a;多用户状态有网络服务4&#xff1…

cmd管道无法接收特定程序返回值_渗透不会反弹shell?来教你写一个cmd的shell

渗透不会反弹shell&#xff1f;来教你写一个cmd的shell包含的库&#xff1a;#include #include #include #include #include #pragma comment(lib, "Ws2_32.lib")#define DEFAULT_BUFLEN 1024winsock2和ws2tcpip两个库文件是用来初始化网络套接字的。windows用来初始…

有类似split的命令吗_5分钟学linux命令之split

情景介绍平时工作中&#xff0c;我习惯使用rz从本地上传文件到服务器&#xff0c;sz从服务器下载文件到本地&#xff0c;但对传输文件大小有限制&#xff0c;例如排查线上jvm的问题&#xff0c;需要生成了dump文件&#xff0c;可能有10G大&#xff0c;超过了限制&#xff0c;怎…

乐观锁的颗粒度_MySql数据库锁机制详解

概述数据库锁定机制简单的来说&#xff0c;就是数据库为了保证数据的一致性与完整性&#xff0c;而使各种共享资源在被并发访问时变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁机制&#xff0c;所以MySQL也不能例外。MySQL数据库根据锁锁定数据的颗粒度可…

云溪怎么导入dxf_dwg怎么转换成dxf文件?超详细图文教程分享

在CAD相关的工作中,我们经常遇到这种问题&#xff0c;需要把DWG格式的CAD图纸转换成DXF格式。那么&#xff0c;我们应该怎么做呢&#xff1f;接下来为你介绍这一个方法&#xff0c;非常方便快速哦。准备电脑风云CAD转换器具体步骤&#xff1a;在桌面上新建文件夹&#xff0c;将…

特斯拉是l3还是l2_比特斯拉还“高一级”,长安的“L3级自动驾驶”到底什么来头?...

3月5日&#xff0c;长安发布了旗下全新轿跑SUV——UNI-T&#xff0c;新车一经亮相&#xff0c;便凭借极具科幻的造型&#xff0c;以及越级的动力性能吸粉无数。而在大家意犹未尽之时&#xff0c;长安又在3月10日&#xff0c;通过UNI-T发布了“L3级自动驾驶”量产体验&#xff0…

mysql5.7.17配置_mysql-5.7.17-winx64的安装配置

第一步&#xff1a;下载mysql-5.7.17-winx64解压版本&#xff1a;http://dev.mysql.com/downloads/mysql/第二步&#xff1a;解压到安装目录&#xff0c;如&#xff1a;C:\myprogram\mysql-5.7.17-winx64第三步&#xff1a;设置环境变量操作如下&#xff1a;1)右键单击我的电脑…

openstack实例控制台显示响应时间过长_监控OpenStack的技巧

如果你以前曾在云平台上工作过&#xff0c;你一定熟悉这些系统的分布式和解耦性质。解耦的分布式系统依赖于微服务来执行特定的任务&#xff0c;每个微服务都会暴露自己的REST(表示状态转移)API。这些微服务通常以诸如RabbitMQ或QPID等消息中间件的形式通过轻量级消息层相互通信…

java8 创建list方式_Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!

今天来分享下在 Java 8 中创建 Stream 的 10 种方式,我就整理了 10 种,其实还有更多,仅供大家参考学习下。 1、Stream.of 可变参数 Stream<String> stream1 = Stream.of("A", "B", "C"); System.out.println("stream1:" + st…

js map满足条件跳出循环_js.es5 map循环一大坑:循环遍历竟然出现逗号!

一、mapmap大法好作为当今程序界最好用的循环方法之一map, 在我的项目里基本替代了for循环map循环常用的一些方法/********* ES6 **********///一行代码可以省略returnarray.map( item > console.log(item))>array.map( item > {return console.log(item)})//多行代码…

micropython按键控制流水灯_【micro:bit Micropython】The LED Display(1)控制像素点

使用DFrobot研发的micropython编程软件uPyCraft&#xff0c;下载固件(Firmware)和下载程序都非常方便。可以在DFrobot论坛中进行下载。uPyCraft软件运行界面官网中的micro:bit Micropython API介绍得非常详细&#xff0c;为开发人员提供了详细的文字说明和参照。micro:bit Micr…

python中exp_python中的exp是什么

Python exp() 函数描述exp() 函数返回 x 的指数&#xff0c;。语法import mathmath.exp(x)注意&#xff1a;exp() 是不能直接访问的&#xff0c;需导入 math 模块&#xff0c;通过静态对象调用该方法。参数x -- 数值表达式。返回值返回 x 的指数&#xff0c;。实例# -*- coding…