赫连小伍
登录远程仓库:
```
docker login [OPTIONS] [SERVER]
```
从远程仓库搜索镜像:
```
docker search [OPTIONS] TERM
```
把本地镜像推送到远程仓库:
```
docker push [OPTIONS] NAME[:TAG]
```
从远程仓库拉取或更新镜像:
```
docker pull [OPTIONS] NAME[:TAG]
```
显示所有镜像:
```
docker images
```
删除本地镜像:
```
docker rmi [OPTIONS] IMAGE [IMAGE...]
```
标记镜像,将其归入仓库:
```
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
```
查看镜像的创建历史:
```
docker history IMAGE[IMAGE...]
```
将镜像打包成文件:
```
docker save [OPTIONS] IMAGE [IMAGE...] -o FILENAME[:FORMAT]
```
从指定文件中加载镜像:
```
docker load -i FILENAME[:FORMAT]
```
创建一个容器并运行:
```
docker run [OPTIONS] COMMAND [ARG...] --name CONTAINER [CONTAINER...]
```
启动容器:
```
docker start CONTAINER [CONTAINER...]
```
重启容器:
```
docker restart CONTAINER [CONTAINER...]
```
停止容器:
```
docker stop CONTAINER [CONTAINER...]
```
请根据以下信息完成内容重构,并保持段落结构:
当不指定用户登录到远程仓库时,执行`docker login -u helianxiaowu -p 123456 192.168.10.10/docker-lib`,会提示输入用户名或密码。同样地,不指定用户登录到默认的远程仓库(`docker login`)也会提示输入用户名或密码。此外,可以使用`docker search`命令从远程仓库搜索镜像。
下面是`search`命令的列含义及其常用写法:
- NAME:镜像名称
- DESCRIPTION:镜像描述
- STARS:镜像热度,类似于 GitHub 的 stars
- OFFICIAL:是否是官方发布
- AUTOMATED:是否自动构建
以下是`search`命令的选项及其常用值:
```markdown
OPTIONS TERM
-f --limit --format
-f KEY=VALUE KEY 的可选值如下
star is-automated is-official
--formattablet table\t format \"[table] {{COLUMN}}[{{COLUMN}}...]\"
COLUMN 的可选值如下:
.Name .Description .StarCount .IsOfficial .IsAutomated
```
举例来说,要搜索热度大于100并且不是自动构建的centos镜像,可以编写如下命令:
```markdown
docker search -f stars=100 -f is-automated=false centos
```
若要搜索非官方发布的centos镜像,且搜索结果只展示名称和热度,列之间用TAB键隔开,则可以使用以下命令:
```markdown
docker search -f is-official=false --format "[table]{{.Name}}\t{{.StarCount}}" centos
```
以下是重构后的内容:
### 1. 将my-image镜像的1.1.0版本推送到远程仓库
```
docker push my-image:1.1.0
```
### 2. 将my-image镜像推送到远程仓库,不指定版本时默认为latest版本
```
docker push my-image
```
### 3. pull命令可以从远程仓库拉取镜像,如果本地仓库已经存在该镜像,则会更新
```
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
```
其中,OPTIONS包括以下常用值:
- `-a` 或者 `--disable-content-trust`:使用安静模式,不输出不必要的信息。
- `-q` 或者 `--quiet`:在拉取镜像时不输出任何信息。
### 4. pull常用写法
```
从远程仓库拉取centos镜像,不指定版本时默认为latest版本
docker pull centos
```
使用安静模式从远程仓库拉取版本号为5.11的centos镜像:
```
docker pull -q centos:5.11
```
使用安静模式从远程仓库拉取所有版本号的centos镜像:
```
docker pull -a -q centos
```
### 5. images命令可以显示本地存在的所有镜像,列含义如下:REPOSITORYTAGIMAGE IDCREATEDSIZE仓库路径镜像版本镜像id创建时间镜像大小
```
docker images [OPTIONS] [REPOSITORY[:TAG]]
```
其中,OPTIONS包括以下常用值:
- `-f` 或者 `--filter`:过滤出符合指定条件的镜像。
- `--digests`:输出完整的Digest值。
- `--formattable\t`或者`--format "[table] {{COLUMN}}[{{COLUMN}}...]"`:以表格形式输出。
KEY的可选值如下:`dangling label before since reference`,用于指定过滤器条件。
COLUMN的可选值如下:`.ID.Repository.Tag.Digest.CreatedSince.CreatedAt.Size`。
```
images常用写法
- 显示本地所有镜像:
```
docker images
```
- 只显示id列并且不截断:
```
docker images -q --no-trunc
```
- 显示centos镜像信息:
```
docker images centos
```
- 显示列中包含cent关键字的所有镜像:
```
docker images | grep cent
```
以下是您要求的内容重构:
1. 显示本地所有镜像,并显示摘要列:
```
docker images --digests
```
2. 显示在centos:latest镜像之后创建的latest版本的所有镜像:
```
docker images -f since=centos:latest -f reference=*:latest
```
3. 显示所有镜像信息,只显示镜像id、摘要、创建时间3列,列之间用TAB键隔开:
```
docker images --format "table {{.ID}}\t{{.Digest}}t{{.CreatedAt}}"
```
4. 显示在centos:5.11镜像之前创建的镜像,只显示镜像仓库路径、版本号、创建时间3列,列之间用TAB键隔开:
```
docker images -f before=centos:5.11 --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedAt}}"
```
5. 删除centos镜像:
```
docker rmi tomcat
```
删除centos:5.11镜像:
```
docker rmi centos:5.11
```
删除id为621ceef7494a的镜像:
```
docker rmi 621ceef7494a
```
同时删除tomcat、centos和redis镜像:
```
docker rmi tomcat centos redis
```
强制删除tomcat镜像,就算此时有tomcat容器正在运行,镜像也会被删除:
```
docker rmi -f tomcat
```
6. tag命令可以基于一个镜像,创建一个新版本的镜像并归入本地仓库,此时该镜像在仓库中存在两个版本,可以根据这两个镜像创建不同的容器。tag语法如下:
```
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
```
tag的常用写法包括:基于redis:latest镜像创建my-redis1.0镜像,并把新镜像归入redis-lib仓库。代码如下:
```
docker tag redis:latest redis-lib/my-redis:1.0
```
以下是重构后的内容:
### 基于621ceef7494a镜像创建my-redis:test-100m镜像,并把新镜像归入redis-lib仓库
首先,我们需要使用`docker tag`命令将原始镜像`621ceef7494a`标记为新的镜像`redis-lib/my-redis:test-100m`。然后,我们可以使用`history`命令查看该镜像的创建历史。
```bash
docker tag 621ceef7494a redis-lib/my-redis:test-100m
```
接下来,我们可以查看镜像的历史记录。例如,要查看CentOS镜像的创建历史,可以使用以下命令:
```bash
docker history centos
```
如果需要将时间和大小转换为人类可读的格式,可以使用`-H=true`选项:
```bash
docker history -H=true centos
```
如果只需要显示ID、创建时间戳和创建时的命令3列,列之间使用TAB键隔开,可以使用以下命令:
```bash
docker history --format "table {{.ID}}\t{{.CreatedAt}}\t{{.CreatedBy}}" centos
```
此外,我们还可以使用`save`命令将一个或多个镜像打包到一个文件中。需要注意的是,`save`命令打包的是镜像,包含镜像的所有信息;而`export`命令打包的是容器,只是保存容器当时的快照,历史记录和元数据信息将会丢失。下面是一些常用的`save`命令写法:
```bash
# 将centos镜像打包成my-images.tar
docker save centos > /home/my-images.tar
# 将centos镜像和redis镜像打包到my-images.tar
docker save centos redis > /home/my-images.tar
```
将 CentOS 镜像和 Redis 镜像打包到 my-images.tar
首先,使用 `docker save` 命令将 CentOS 镜像和 Redis 镜像保存到一个文件中:
```bash
docker save -o /home/my-images.tar centos redis
```
接下来,使用 `docker load` 命令从指定文件中加载镜像。该文件需要是 `save` 命令保存的文件。`load` 命令的语法如下:
```bash
docker load [OPTIONS]
```
常用的选项值有:
- `-i`:从指定文件中加载镜像。
- `-q`:使用安静模式,不显示详细信息。
加载镜像的常用写法有:
1. 从 my-images.tar 文件中加载镜像:
```bash
docker load < /home/my-images.tar
```
2. 从 my-images.tar 文件中加载镜像(使用安静模式):
```bash
docker load -i /home/my-images.tar -q
```
创建并运行容器的语法如下:
```bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
```
常用的选项值有:
- `-i`:以交互模式运行容器。
- `-t`:为容器分配一个伪终端。
- `-d`:后台运行容器。
- `-p`:宿主机端口映射到容器端口。
- `--name`:为容器指定名称。
- `-m`:将容器的标准输入、输出、错误重定向到指定的容器。
- `-v`:挂载主机目录到容器内。
- `--volumes-from`:从指定的容器继承数据卷。
- `--rm`:容器退出时自动删除容器。
- `--hostname`:设置容器的主机名。
创建并运行容器的常用写法有:
1. 创建一个名为 my-centos 的 CentOS 容器,并运行:
```bash
docker run centos
```
2. 创建一个名为 my-centos 的 CentOS 容器,并以交互模式运行:
```bash
docker run -it centos
```
3. 创建一个名为 my-centos 的 CentOS 容器,并后台模式运行:
```bash
docker run -d centos
```
以下是重构后的内容:
1. 创建一个名为my-boot的Spring Boot容器,并以交互模式运行。设置容器的日志目录为主机的/logs/my-boot目录。在主机上可以查看my-boot项目的日志。
```bash
docker run -it --name my-boot -v /logs/my-boot/:/logs/ spring-boot
```
2. 创建一个名为my-boot的Spring Boot容器,并以交互模式运行。将主机的80端口映射到容器的8080端口。将主机的/logs/my-boot/路径绑定到容器的/logs目录。给容器分配最大500M的内存。指定spring-boot的配置文件为test。
```bash
docker run -it --name my-boot -p 80:8080 -v /logs/my-boot/:/logs/ -m 500M spring-boot --spring.profiles.active=test
```
3. start命令可以启动一个或多个已经停止的容器。start语法如下:
```bash
docker start [OPTIONS] CONTAINER [CONTAINER...]
```
4. OPTIONS常用值有:
-a,表示自动重启已停止的容器;
-i,表示以后台模式运行容器。
start常用写法示例:
启动已经停止的tomcat容器:`docker start tomcat`
启动已经停止的tomcat和centos容器:`docker start tomcat centos`
启动已经停止的my-spring-boot容器,并输出日志:`docker start -a my-spring-boot`
启动已经停止centos容器,并附加一个输入终端:`docker start -i centos`
5. restart命令可以对一个或多个容器进行重启。如果容器是未启动的则会启动,如果是正在运行中的,则会重启。restart语法如下:
```bash
docker restart [OPTIONS] CONTAINER [CONTAINER...]
```
6. OPTIONS常用值有:
-t,表示跟踪容器进程,等待容器完全关闭后再重启。
restart常用写法示例:
重启centos容器:`docker restart centos`
20秒之后重启centos和tomcat容器:`docker restart -t 20 centos tomcat`
Docker提供了几种命令来管理容器的生命周期,包括停止、重启和杀死容器,以及删除容器。以下是这些命令的基本语法和一些常用的写法:
1. 停止命令(stop):可以停止一个或多个正在运行的容器。与kill命令不同的是,stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放链接、关闭请求等。常用写法如下:
```bash
docker stop tomcat // 停止tomcat容器
docker stop tomcat centos // 停止tomcat和centos容器
docker stop tomcat -t 5 // 停止tomcat容器,如果5秒内还未停止则直接杀死
```
2. 重启命令(restart):可以重启一个或多个容器,不管容器是运行或停止。常用写法如下:
```bash
docker restart tomcat // 重启tomcat容器
docker restart tomcat centos // 重启tomcat和centos容器
docker restart tomcat -t 5 // 重启正在运行的tomcat容器,如果5秒内还未停止则直接杀死然后重启
```
3. kill命令(kill):可以杀死一个或多个正在运行的容器。常用写法如下:
```bash
docker kill tomcat // 杀死tomcat容器
docker kill -s 9 tomcat // 强制杀死tomcat容器
docker kill -s KILL tomcat // 强制杀死tomcat容器
docker kill tomcat centos // 杀死tomcat和centos容器
```
注意,如果要强制删除运行中的容器,需要使用-f参数。
4. 删除命令(rm):可以删除一个或多个容器。如果容器正在运行,则需要通过-f参数强制删除。常用写法如下:
```bash
docker rm tomcat // 删除tomcat容器
docker rm tomcat centos // 删除tomcat和centos容器
docker rm -f tomcat // 强制删除运行中的tomcat容器
```
OPTIONS的常用值
-f:强制删除容器,即使容器正在运行也会被删除
-l:移除容器my-nginx对容器my-db的连接,连接名db
-v:删除centos容器,并删除它挂载的卷
-p:宿主机端口映射,格式为宿主机端口:容器端口
-P:--name指定容器名称
-d:以后台模式运行容器
-m:--memory限制容器使用的内存大小
-v:--volumes-from从另一个容器中创建数据卷或绑定挂载点
-w:--workdir设置工作目录
-h:--hostname设置容器的主机名
rm常用写法
1. 删除centos容器
```
docker rm centos
```
2. 强制删除centos容器,即使容器正在运行也会被删除
```
docker rm -f centos
```
3. 删除所有已经停止的容器
```
docker rm $(docker ps -a -q)
```
4. 移除容器my-nginx对容器my-db的连接,连接名db
```
docker rm -l db
```
5. 暂停一个或多个正在运行的容器
```
docker pause CONTAINER [CONTAINER...]
```
pause语法:docker pause CONTAINER [CONTAINER...]
6. 取消暂停一个或多个暂停的容器
```
docker unpause CONTAINER [CONTAINER...]
```
unpause语法:docker unpause CONTAINER [CONTAINER...]
7. 创建一个容器,但不运行它,在需要的时候可以使用start命令启动。和run命令的用法几乎一致,都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取。run命令创建容器后会运行容器。create命令只是创建容器,不运行。create语法:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONSIMAGECOMMANDARG
OPTIONS的常用值:create命令和run命令的可选参数一样。docker create --help查看详细信息。
8. 创建一个centos容器
```
docker create centos
```
9. 创建一个centos容器,start启动时以交互模式运行(默认为非交互模式)
```
docker create --name centos --tty centos
```
创建并运行一个CentOS容器:
```
docker create -it centos
```
启动时在后台模式运行:
```
docker start -d centos
```
创建并运行一个重命名的CentOS容器(交互模式):
```
docker create -d centos --name my-centos
docker start -i -t my-centos
docker exec my-centos /bin/bash
```
创建并运行一个Spring Boot容器(交互模式):
```
docker create -it spring-boot --name my-boot
docker start -i -t my-boot
docker exec -it my-boot bash
```
将主机的80端口映射到容器的8080端口,并以交互模式运行(访问主机IP+80端口可访问容器中的Spring Boot项目):
```
docker create -it --name my-boot -p 80:8080 spring-boot
docker start -i -t my-boot
docker exec -it my-boot bash
```
将主机的/logs/my-boot/目录绑定到容器的/logs目录,并以交互模式运行(查看my-boot项目的日志):
```
docker create -it --name my-boot -v /logs/my-boot/:/logs/ spring-boot
docker start -i -t my-boot
docker exec -it my-boot bash
```
给容器分配最大500M的内存,指定Spring Boot的配置文件为test,并以交互模式运行:
```
docker create -it --name my-boot -p 80:8080 -v /logs/my-boot/:/logs/ -m 500M spring-boot --spring.profiles.active=test
docker start -i -t my-boot
docker exec -it my-boot bash
```
执行一个命令在一个运行中的容器中(例如,在centos容器中运行pwd命令):
```
docker exec centos pwd
```
```
# 在 CentOS 镜像中的 bin 目录执行 ls 命令
docker exec -it centos /bin/bash
# 在容器中运行 ls 命令
docker exec -w /bin centos ls
# ps 命令可以列出所有容器的列表,查看容器的基本信息。不加任何参数的情况下,默认只展示正在运行的容器
# 列含义如下:CONTAINER ID、IMAGE、COMMAND、CREATED、PORTS、NAMES
ps
# ps 语法:docker ps [OPTIONS]
# OPTIONS 包括以下常用值:
# -a:显示所有容器(包括已停止的)
# -f:过滤容器列表,根据指定的 KEY 和 VALUE 来筛选容器
# -n:以数字形式显示容器名称而不是完整名称
# -l:仅显示容器的 ID、名称、状态、端口等信息
# -q:仅显示容器的 ID
# -s:以表格形式显示容器详细信息
# --no-trunc:不截断输出结果,如果容器名过长的话
# ps 常用写法:
# 查看运行中的容器:docker ps
# 查看所有容器:docker ps -a
# 查看所有容器,并显示容器大小:docker ps -a -s
# 查看所有容器,显示内容不截断:docker ps -a --no-trunc
# 查看容器名称中包含 cent 的容器:docker ps -f name=cent
# 查看状态是 created 的容器:docker ps -f status=created
# 查看在 centos 之前创建的容器:docker ps -f before=centos
# 查看绑定了宿主机80端口并且正在运行的容器:docker ps -f publish=80
# inspect 命令可以获取一个或多个容器或者镜像的元数据信息。inspect 是 ps 的替代方案,功能更强大。
inspect
# inspect 语法:docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
# OPTIONS 包括以下常用值:--type、--format、--size、--stream、--timeout
# inspect 常用于查看容器或镜像的详细信息,如配置文件、挂载点等。常用的 inspect 命令包括:
## 查看 Tomcat 容器的元数据信息:docker inspect tomcat
## 查看 Tomcat 镜像的元数据信息:docker inspect --type=image tomcat
## 查看 Tomcat 容器的 IP 地址:docker inspect --format '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
查看Tomcat容器的IP地址:
```
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' tomcat
```
查看Tomcat容器的端口映射:
```
docker inspect -f '{{.HostConfig.PortBindings}}' tomcat
```
查看Tomcat容器的挂载目录:
```
docker inspect -f '{{.HostConfig.Binds}}' tomcat
```
退出命令行:
```
ctrl+c
```
您好!您可以使用`docker attach centos`命令连接到容器内的进程。当您需要退出时,可以按下`Ctrl+c`,这将发送一个SIGINT信号给正在运行的进程,然后进程将被终止 。
如果您需要查看最近10分钟的日志,可以使用以下命令:`docker logs --since 10m tomcat` 。
Docker wait命令用于阻塞容器,直到其退出并打印退出状态码。以下是wait命令的常用写法:
```bash
docker wait CONTAINER [CONTAINER...]
```
其中,`CONTAINER`是要等待的容器名称或ID。例如,要等待名为`centos`的容器退出并打印退出状态码,可以使用以下命令:
```bash
docker wait centos
```
在等待过程中,可以先停止该容器,然后切换到使用`docker wait`命令的终端,就可以看到输出的状态码。
Port语法用于查看容器的端口映射情况。以下是port命令的常用写法:
```bash
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
```
其中,`CONTAINER`是要查看端口映射的容器名称或ID;`PRIVATE_PORT`是容器内部的端口号;`PROTO`是可选参数,表示协议类型,默认为tcp。例如,要查看名为`my-boot`的容器的端口映射情况,可以使用以下命令:
```bash
docker port my-boot
```
如果要查看名为`my-boot`的容器的8080端口映射到宿主机的端口号,可以使用以下命令:
```bash
docker port my-boot 8080
```
如果要查看名为`my-boot`的容器使用tcp协议的8080端口映射到宿主机的端口号,可以使用以下命令:
```bash
docker port my-boot 8080/tcp
```
export命令用于将容器打包成一个文件。与save命令相比,它们容易混淆。export和save的不同之处在于:export打包的是容器,save打包的是镜像。export打包的是容器当时的快照,而容器的历史记录和元数据信息都会丢失。此外,当将export导出的文件导入为镜像时,可以重新指定镜像的名称和版本号。以下是export命令的常用写法:
```bash
docker export [OPTIONS] CONTAINER
```
其中,`OPTIONS`是可选参数,常用的值包括:
- `-o`:指定导出文件的路径和名称。例如:`-o /tmp/my-boot.tar my-boot`,将名为`my-boot`的容器导出为文件`/tmp/my-boot.tar`。
- `--output=path/to/file.tar`:等同于使用选项`-o path/to/file.tar`,指定导出文件的路径和名称。例如:`--output=/tmp/my-boot.tar my-boot`,将名为`my-boot`的容器导出为文件`/tmp/my-boot.tar`。
import命令用于从本地文件或远程文件中导入镜像到本地仓库。如果是从文件中导入,这个文件需要是export命令导出的文件。以下是import命令的常用写法:
```bash
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
```
您好,您可以使用以下命令从my-boottar文件创建镜像,并指定镜像名称为my-boot-test、版本号为1.0:
```
docker import /tmp/my-boot.tar my-boot-test:1.0
```
或者,您可以使用以下命令从my-boot.tar文件创建镜像,备注信息为测试,并指定镜像名称为my-boot-test、版本号为1.0:
```
docker import --message '测试' /tmp/my-boot.tar my-boot-test:1.0
```
如果您想从远程服务器的my-boot.tar文件创建镜像,可以使用以下命令:
```
docker import http://192.168.100.1:8080/images/my-boot.tar
```