C++GO语言微服务之docker基础-镜像-容器管理③

目录

 

01 18-查看容器的信息-docker ps

02 19-容器 的创建

03 20-容器的启动

04 21-容器的创建和启动-docker run

05 22-容器的暂停重启

06 23-容器的关闭stop kill

07 24-容器的删除

08 25-容器的进入 docker exec

09 26-查看容器的详细信息

10 27-容器端口映射查看和容器重命名

11 28-容器命名总结

01 01-知识点概述

02 02-镜像的两种导入导出方式

03 03-文件拷贝

04 04-数据卷挂载命令

05 05-数据卷挂载两种方式


 

01 18-查看容器的信息-docker ps

ocker的核心技术内容很多,我们学习则从以下四个方面来介绍Docker的核心技术
**镜像**、**容器**、**数据**、**网络**

## 2.1 docker镜像管理

### 2.1.1 镜像简介

Docker镜像是什么?
​    镜像是一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。
​    通过镜像可以创建一个或多个容器。

### 2.1.2 搜索、查看、获取



#### 搜索镜像

```shell
#作用
    搜索Docker Hub(镜像仓库)上的镜像
#命令格式:
    docker search [镜像名称]
#命令演示:
$ docker search ubuntu
#NAME:名称
#DESCRIPTION:基本功能描述
#STARS:下载次数
#OFFICIAL:官方
#AUTOMATED:自动的运行

02 19-容器 的创建

#### 获取镜像

```shell
#作用:
    下载远程仓库(如Docker Hub)中的镜像
#命令格式:
docker pull [镜像名称]
#命令演示:
$ docker pull ubuntu
$ docker pull nginx

#注释:
#获取的镜像在哪里?
#/var/lib/docker 目录下

#由于权限的原因我们需要切换root用户
#那我们首先要重设置root用户的密码:
:~$ sudo passwd root
#这样就可以设置root用户的密码了。
#之后就可以自由的切换到root用户了
:~$ su
#输入root用户的密码即可。

#当然,如果想从root用户切换回一般用户,则可使用 su -val(一般用户名)
#而当你再次切回到root用户,则只需要键入exit,再次输入exit则回到最初的用户下
#操作下面的文件可以查看相关的镜像信息       
:~$ vim /var/lib/docker/image/overlay2/repositories.json 
```

03 20-容器的启动

#### 查看镜像

```shell
#作用:
    列出本地镜像
#命令格式:
docker images [镜像名称]
docker image ls [镜像名称]
#命令演示:
$ docker images
#镜像的ID唯一标识了镜像,如果ID相同,说明是同一镜像。TAG信息来区分不同发行版本,如果不指定具体标记,默认使用latest标记信息
#docker images -a 列出所有的本地的images(中间映像层默认不显示)
#REPOSITORY:镜像的名称 
#TAG :镜像的版本标签
#IMAGE ID:镜像id
#CREATED:镜像是什么时候创建的
#SIZE:大小
```

04 21-容器的创建和启动-docker run

## 2.1.3 重命名、删除

#### 镜像重命名

```shell
#作用:
    对本地镜像的NAME、TAG进行重命名,并新产生一个命名后镜像
#命令格式:
docker tag [老镜像名称]:[老镜像版本][新镜像名称]:[新镜像版本]
#命令演示:
$ docker tag nginx:latest panda-nginx:v1.0
```



#### 删除镜像

```shell
#作用:
    将本地的一个或多个镜像删除
#命令格式:
docker rmi [命令参数][镜像ID]
docker rmi [命令参数][镜像名称]:[镜像版本]
docker image rm [命令参数][镜像]
#命令演示:
$docker rmi 3fa822599e10
$docker rmi mysql:latest
#注意:
如果一个image_id存在多个名称,那么应该使用 名称:版本 的格式删除镜像
#命令参数(OPTIONS):    
    -f, --force              强制删除
```

05 22-容器的暂停重启

### 2.1.4 导出、导入

#### 导出镜像

将已经下载好的镜像,导出到本地,以备后用。

```shell
#作用:
    将本地的一个或多个镜像打包保存成本地tar文件
#命令格式:
docker save [命令参数][导出镜像名称][本地镜像镜像]
#命令参数(OPTIONS):    
    -o, --output string           指定写入的文件名和路径
#导出镜像
:~$ docker save -o nginx.tar nginx
```

06 23-容器的关闭stop kill

#### 导入镜像

```shell
#作用:
    将save命令打包的镜像导入本地镜像库中
#导入镜像命令格式:
$ docker load [命令参数][被导入镜像压缩文件的名称]
$ docker load < [被导入镜像压缩文件的名称]
$ docker load --input [被导入镜像压缩文件的名称]
#命令参数(OPTIONS):    
    -i,  --input string       指定要打入的文件,如没有指定,默认是STDIN
    
#为了更好的演示效果,我们先将nginx的镜像删除掉
docker rmi nginx:v1.0
docker rmi nginx    

#导入镜像文件:
$ docker load < nginx.tar
#注意:
    如果发现导入的时候没有权限需要使用chmod命令修改镜像文件的权限
```



### 2.1.5 历史、创建

#### 查看镜像历史

07 24-容器的删除

``shell
#作用:
    查看本地一个镜像的历史(历史分层)信息
#查看镜像命令格式:
docker history [镜像名称]:[镜像版本]
docker history [镜像ID]
#我们获取到一个镜像,想知道他默认启动了哪些命令或者都封装了哪些系统层,那么我们可以使用docker history这条命令来获取我们想要的信息
$ docker history sswang-nginx:v1.0
 
#IMAGE:编号           
#CREATED:创建的  
#CREATED BY :基于那些命令创建的                                 
#SIZE:大小
#COMMENT:评论
```

#### 镜像详细信息 

```shell
#作用:
    查看本地一个或多个镜像的详细信息
#命令格式:
$ docker image inspect [命令参数] [镜像名称]:[镜像版本]
$ docker inspect [命令参数] [镜像ID]
#查看镜像详细信息:
$ docker inspect nginx
```

### 2.1.6总结

08 25-容器的进入 docker exec

## 2.2 容器管理

​    docker容器技术指Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs)

​       containers的中文解释是集装箱。

​    Docker则实现了一种应用程序级别的隔离,它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来。



### 2.2.1 容器简介

#### 容器是什么?

​    容器(Container):容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行

​    •Docker将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。

​    •容器具备一定的生命周期。

​    •另外,可以借助docker ps命令查看运行的容器,如同在linux上利用ps命令查看运行着的进程那样。

​    我们就可以理解容器就是被封装起来的进程操作,只不过现在的进程可以简单也可以复杂,复杂的话可以运行1个操作系统.简单的话可以运行1个回显字符串.

09 26-查看容器的详细信息

 

10 27-容器端口映射查看和容器重命名

#### 容器与虚拟机的相同点

•容器和虚拟机一样,都会对物理硬件资源进行共享使用。

•容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等等)。

•容器中或虚拟机中都可以安装各种应用,如redis、mysql、nginx等。也就是说,在容器中的操作,如同在一个虚拟机(操作系统)中操作一样。

•同虚拟机一样,容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下

#### 容器与虚拟机的不同点

**注意**:容器并不是虚拟机,但它们有很多相似的地方

•虚拟机的创建、启动和关闭都是基于一个完整的操作系统。一个虚拟机就是一个完整的操作系统。而容器直接运行在宿主机的内核上,其本质上以一系列进程的结合。

•容器是轻量级的,虚拟机是重量级的。

​    首先容器不需要额外的资源来管理,虚拟机额外更多的性能消耗;

​    其次创建、启动或关闭容器,如同创建、启动或者关闭进程那么轻松,而创建、启动、关闭一个操作系统就没那么方便了。

•也因此,意味着在给定的硬件上能运行更多数量的容器,甚至可以直接把Docker运行在虚拟机上。

11 28-容器命名总结

## 2.2.2 查看、创建、启动

#### 查看容器

```shell
#作用
    显示docker容器列表
#命令格式:
docker ps
#命令演示:
$ docker ps
#CONTAINER ID 容器ID        
#IMAGE 基于那个镜像              
#COMMAND  运行镜像使用了哪些命令?           
#CREATED多久前创建时间             
#STATUS   开启还是关闭           
#PORTS端口号               
#NAMES容器名称默认是随机的
#注意:
管理docker容器可以通过名称,也可以通过ID
ps是显示正在运行的容器, -a是显示所有运行过的容器,包括已经不运行的容器
```
 

01 01-知识点概述

#### 创建待启动容器

```shell
#作用:
    利用镜像创建出一个Created 状态的待启动容器
#命令格式:
    docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
    docker create [参数命令] 依赖镜像 [容器内命令] [命令参数]
#命令参数(OPTIONS):查看更多
    -t, --tty                   分配一个伪TTY,也就是分配虚拟终端
    -i, --interactive            即使没有连接,也要保持STDIN打开
        --name                  为容器起名,如果没有指定将会随机产生一个名称
#命令参数(COMMAND\ARG):
    COMMAND 表示容器启动后,需要在容器中执行的命令,如ps、ls 等命令
    ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 aux、ls命令的-a等等
#创建容器(附上ls命令和a参数)
    docker create -it --name ubuntu-1  ubuntu ls -a
```

02 02-镜像的两种导入导出方式

**启动容器**

启动容器有三种方式

1、启动待启动或已关闭容器

2、基于镜像新建一个容器并启动

3、守护进程方式启动docker

#### 启动容器

```shell
#作用:
    将一个或多个处于创建状态或关闭状态的容器启动起来

#命令格式:
docker start [容器名称]或[容器ID]
#命令参数(OPTIONS):
    -a, --attach        将当前shell的 STDOUT/STDERR 连接到容器上
    -i, --interactive        将当前shell的 STDIN连接到容器上    
#启动上面创建的容器 
    docker start -a ubuntu-1        
```

03 03-文件拷贝

#### 创建新容器并启动

```shell
#作用:
    利用镜像创建并启动一个容器
#命令格式:
docker run [命令参数]  [镜像名称][执行的命令]
命令参数(OPTIONS):
    -t, --tty               分配一个伪TTY,也就是分配虚拟终端
    -i, --interactive        即使没有连接,也要保持STDIN打开
        --name              为容器起名,如果没有指定将会随机产生一个名称
    -d, --detach            在后台运行容器并打印出容器ID
    --rm                    当容器退出运行后,自动删除容器

#启动一个镜像输出内容并删除容器
$ docker run --rm  --name nginx1   nginx  /bin/echo "hello docker" 


#注意:
docker run 其实 是两个命令的集合体 docker create + docker start
```

04 04-数据卷挂载命令

#### 守护进程方式启动容器<常用的方式>

更多的时候,需要让Docker容器在后台以守护形式运行。此时可以通过添加-d参数来实现

```shell
#命令格式:
docker run -d [image_name] command ...
#守护进程方式启动容器:
:~$ docker run -d nginx
```

### 2.2.3暂停与取消暂停与重启

#### 容器暂停 

```shell
#作用:
    暂停一个或多个处于运行状态的容器
#命令格式:
    docker pause [容器名称]或[容器ID]
#暂停容器
    docker pause a229eabf1f32 

05 05-数据卷挂载两种方式

 

#### 容器取消暂停

```shell
#作用:
    取消一个或多个处于暂停状态的容器,恢复运行
#命令格式:
    docker unpause [容器名称]或[容器ID]
#恢复容器
    docker unpause a229eabf1f32
```

#### 重启

```shell
#作用:
    重启一个或多个处于运行状态、暂停状态、关闭状态或者新建状态的容器
    该命令相当于stop和start命令的结合
#命令格式:
    docker restart [容器名称]或[容器ID]
#命令参数(OPTIONS):
     -t, --time int           重启前,等待的时间,单位秒(默认 10s) 

#恢复容器
    docker restart -t 20 a229eabf1f32
```

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值