Docker简介与安装

Docker简介与安装

Docker overview | Docker Documentation 官方文档

1.Docker简介

Docker是一个用于开发、发布和运行应用程序的开放平台。Docker使您能够将应用程序从基础设施中分离出来,从而可以快速交付软件。使用Docker,您可以像管理应用程序一样管理基础设施。通过利用Docker的方法来快速发布、测试和部署代码,可以显著减少编写代码和在生产环境中运行代码之间的延迟。

​ –简介来自官网

Docker的官方图标很容易帮我们理解Docker的作用:

Docker简介与安装

Docker的官网图标是一个抽象化的鲸鱼驮着一堆的集装箱。

在容器中运行的应用就像集装箱一样,不需要关注底层运行的环境,总能够通过任意平台达成应用运行的目的。

虽然Docker不是唯一的容器引擎,但在目前任然是最流行的,且市场占有率最大容器引擎。但随着K8s的最近一次更新,不在原生支持Docker,其霸主地位是否会被撼动,任不得知。

2. 容器与虚拟机

如简介所说的,Docker只是众多容器引擎中的一款,却不是唯一,所以不要认为Docker就是容器。Docker作为容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

而应用则可以在容器中运行。可以将容器认为是一个轻量级的虚拟机,而容器引擎是创建容器的应用。

其他常见容器引擎有:Rocket、podman、container。

2.1 容器优点

容器化越来越受欢迎,因为容器具有以下特点:

  1. 灵活:即使是最复杂的应用也可以集装箱化。
  2. 轻量级:容器利用并共享主机内核。
  3. 可互换:可以即时部署更新和升级。
  4. 便携式:可以在本地构建,部署到云,并在任何地方运行。
  5. 可扩展:可以增加并自动分发容器副本。
  6. 可堆叠:可以垂直和即时堆叠服务。

2.2 容器与虚拟机的区别

容器 虚拟机 启动速度 秒级 分钟级 计算损耗 几乎没有 损耗30%-50% 性能 接近原生 弱于 系统支撑量 上千 几十个 隔离性 资源隔离 完全隔离

2.3 容器实现的3种重要技术

docker本质就是宿主机的一个进程,docker是通过 namespace实现资源隔离,通过 cgroup实现资源限制,通过 写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。

其中namespace实现完成了容器化所需要的六项隔离:

Namespace 系统调用参数 隔离内容 UTS CLONE_NEWUTS 主机名与域名 IPC CLONE_NEWIPC 信号量、消息队列和共享内存 PID CLONE_NEWPID 进程编号 Network CLONE_NEWNET 网络设备、网络栈、端口等等 Mount CLONE_NEWNS 挂载点(文件系统) User CLONE_NEWUSER 用户和用户组

3.Dcoker的核心概念

3.1 镜像

Docker的镜像是 创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的 只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。

Docker镜像也是一 个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建。

所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。

3.2 容器

容器是镜像的可运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。您可以将一个容器连接到一个或多个网络,将存储附加到它,甚至根据它的当前状态创建一个新的镜像。

可以把容器看做是要给 简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

3.3 仓库

存放镜像的地方

4.Docker的安装

4.1 安装步骤

目前 Docker 只能支持 64 位系统。

systemctl stop firewalld.service
setenforce 0

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce

systemctl start docker.service
systemctl enable docker.service

#查看 docker 版本信息
docker version

4.2 安装截图

1.前置准备

Docker简介与安装

2.依赖包安装

Docker简介与安装

3.配置阿里镜像源

Docker简介与安装

4.安装docker-CE

Docker简介与安装

5.配置自动启动

Docker简介与安装

4.3 使用官方安装脚本安装

#获取安装脚本
curl https://get.docker.com > /tmp/install.sh
#无论何时执行未知脚本都是有风险的事情,所以在执行脚本前可以先查看脚本是否包含恶意代码。
cat /tmp/install.sh
...

#赋予执行权限
chmod +x /tmp/install.sh
#执行脚本
/tmp/install.sh

这个脚本会先做数个检查,然后用适合你的系统的包安装 Docker。如果它发现系统缺少了 一些安全和文件系统功能所需要的依赖关系,还会把它们一并安装。 如果你完全不想使用安装程序,或者希望使用一个安装程序未提供的 Docker 版本,也可以在 Docker 网站下载二进制文件。这样做的缺点是它不会检查依赖关系,并且以 后需要手动安装更新。有关二进制文件的更多信息和下载链接,参见 Docker Binary 网页 (https://docs.docker.com/engine/installation/binaries/)

1.获取脚本

Docker简介与安装

2.赋予执行权限

Docker简介与安装

3.执行脚本

Docker简介与安装

Docker简介与安装

5.Docker 常见命令

5.1 镜像相关

5.1.1 搜索镜像(search)

Docker简介与安装
[root@local ~]# docker search nginx #默认显示前25个镜像
[root@local ~]#
[root@local ~]# docker search  --limit 5 nginx #显示前5个镜像
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        16985     [OK]
bitnami/nginx                      Bitnami nginx Docker Image                      131                  [OK]
ubuntu/nginx                       Nginx, a high-performance reverse proxy & we...   52
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr...   18                   [OK]
kasmweb/nginx                      An Nginx image based off nginx:alpine and in...   1

5.1.2 下载镜像(pull)

[root@local ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b85a868b505f: Pull complete
f4407ba1f103: Pull complete
4a7307612456: Pull complete
935cecace2a0: Pull complete
8f46223e4234: Pull complete
fe0ef4c895f5: Pull complete
Digest: sha256:10f14ffa93f8dedf1057897b745e5ac72ac5655c299dade0aa434c71557697ea
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@local ~]#
[root@local ~]# docker pull nginx:1.20.1
1.20.1: Pulling from library/nginx  # 指定版本下载

5.1.3 上传镜像(push)

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传。

[root@local ~]# docker tag nginx:latest nginx:web       #添加新的标签
[root@local ~]# docker login                            #登录公共仓库
Username:
password:
[root@local ~]# docker push docker push nginx:web       #上传镜像

5.1.4 查看本地镜像列表(images)

[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    55f4b40fe486   28 hours ago   142MB

5.1.5 对镜像打标签 (tag)

可以看见如果原有镜像有标签,会新增一条标签记录
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    55f4b40fe486   28 hours ago   142MB
[root@local ~]# docker tag 55f4b40fe486 canyun:latest
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
canyun       latest    55f4b40fe486   29 hours ago   142MB
nginx        latest    55f4b40fe486   29 hours ago   142MB
可以对一个镜像进行多次打标签
[root@local ~]# docker tag 55f4b40fe486 canyun:1.20
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
canyun       1.20      55f4b40fe486   29 hours ago   142MB
canyun       latest    55f4b40fe486   29 hours ago   142MB
nginx        latest    55f4b40fe486   29 hours ago   142MB

5.1.6 删除镜像 (rmi)

#当一个镜像有多个标签时,可以删除其中指定的标签
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
canyun       1.20      55f4b40fe486   29 hours ago   142MB
canyun       latest    55f4b40fe486   29 hours ago   142MB
nginx        latest    55f4b40fe486   29 hours ago   142MB
[root@local ~]# docker rmi canyun:1.20    # docker rmi 仓库名称:标签名
Untagged: canyun:1.20
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
canyun       latest    55f4b40fe486   29 hours ago   142MB
nginx        latest    55f4b40fe486   29 hours ago   142MB
#docker rmi 镜像ID号  会彻底删除该镜像
[root@local ~]# docker rmi 55f4b40fe486             #普通删除无法删除
Error response from daemon: conflict: unable to delete 55f4b40fe486 (must be forced) - image is referenced in multiple repositories
[root@local ~]# docker rmi 55f4b40fe486 -f
Untagged: canyun:latest
Untagged: nginx:latest
Untagged: nginx@sha256:10f14ffa93f8dedf1057897b745e5ac72ac5655c299dade0aa434c71557697ea
Deleted: sha256:55f4b40fe486a5b734b46bb7bf28f52fa31426bf23be068c8e7b19e58d9b8deb
Deleted: sha256:5f58fed9b4d8e6c09cdc42eed6de6df7a7e35b40d92c98f30f8ecad4960fb7a0
Deleted: sha256:8bb72c1d014292ebf1ae348a77624c536e766757356c6dbb0de75122a94b445d
Deleted: sha256:cc9ac0adbded956d924bcf6c26ffbc93ea070019be1437d204b530a033ff4b16
Deleted: sha256:30f210588f35917f0edb5a2465db7ad60e4ef3b6ac74fe155474e14e6f0995c5
Deleted: sha256:5ecd5431cf49a2a11115844de1e7b23b9535be8789add9ab50973867db5f7d36
Deleted: sha256:08249ce7456a1c0613eafe868aed936a284ed9f1d6144f7d2d08c514974a2af9
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

5.1.7 导出镜像( save)

[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat2      zuixing   4813a0e5f815   10 days ago   480MB
tomcat3      new       4813a0e5f815   10 days ago   480MB
tomcat       latest    4813a0e5f815   10 days ago   480MB
指定库名称和标签导出
[root@local ~]# docker save tomcat2:zuixing -o /tmp/canyun_docker_tomcat.tar.gz
[root@local ~]# ls /tmp
canyun_docker_tomcat.tar.gz
........................

指定镜像id导出
[root@local ~]# docker save 4813a0e5f815 -o /tmp/canyun_docker_tomcat2.tar.gz
[root@local ~]# ls /tmp
canyun_docker_tomcat2.tar.gz
canyun_docker_tomcat.tar.gz

5.1.8 导入镜像 (load、import)

#先删除所有镜像
[root@local ~]# docker rmi 4813a0e5f815 -f
Untagged: tomcat2:zuixing
Untagged: tomcat3:new
Untagged: tomcat:latest
Untagged: tomcat@sha256:8ece5eebda93ab45acf77b237f5564b3c558d0ce782c2f4302796043a621662f
Deleted: sha256:4813a0e5f815c2f686a8e41d879735dc1ba1c2dc3b059223e9d0467e4fbf48ae
Deleted: sha256:6263f68f8705cf7609f607c8d619c5151425126082ce197600039913c232a1fb
Deleted: sha256:c905f33549a11869176f6697bd7b20e076c018e04532bdf0ae45e1308f969933
Deleted: sha256:6e6af734a6437c86a45e0ce53da33fae0cadf54504eb4753a6fd1a879ef9b88d
Deleted: sha256:f415aa1e1cc2befb567a9de49e61a5ae64017c088f0f9af7db6853a0ea9b0bd4
Deleted: sha256:dd96e1d720e7faae18ba9749c7a76ec07c39438cea3b4524c8e51c0a97e4c169
Deleted: sha256:8ea98ddb7c7042ae259a9b82cbd8e2ed0c365d9fc0889010e72772e2e7fff9a3
Deleted: sha256:af7ed92504ae4c20128a0f01048d41d467fef5c795c38d0defdb998a187ed1d4
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
#按标签导出的镜像导入
[root@local ~]# docker image load -i /tmp/canyun_docker_tomcat.tar.gz
af7ed92504ae: Loading layer [==================================================>]  75.15MB/75.15MB
4f00b42da09e: Loading layer [==================================================>]   58.8MB/58.8MB
169f6a3fe055: Loading layer [==================================================>]  329.6MB/329.6MB
75cd1080d2c5: Loading layer [==================================================>]   2.56kB/2.56kB
8ec4a98c4d98: Loading layer [==================================================>]  3.072kB/3.072kB
5d16e43bd609: Loading layer [==================================================>]  22.87MB/22.87MB
b6fb9d3b2bd3: Loading layer [==================================================>]  2.048kB/2.048kB
Loaded image: tomcat2:zuixing
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat2      zuixing   4813a0e5f815   10 days ago   480MB
#按镜像id导出的镜像导入
[root@local ~]# docker image load -i /tmp/canyun_docker_tomcat2.tar.gz
af7ed92504ae: Loading layer [==================================================>]  75.15MB/75.15MB
4f00b42da09e: Loading layer [==================================================>]   58.8MB/58.8MB
169f6a3fe055: Loading layer [==================================================>]  329.6MB/329.6MB
75cd1080d2c5: Loading layer [==================================================>]   2.56kB/2.56kB
8ec4a98c4d98: Loading layer [==================================================>]  3.072kB/3.072kB
5d16e43bd609: Loading layer [==================================================>]  22.87MB/22.87MB
b6fb9d3b2bd3: Loading layer [==================================================>]  2.048kB/2.048kB
Loaded image ID: sha256:4813a0e5f815c2f686a8e41d879735dc1ba1c2dc3b059223e9d0467e4fbf48ae
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
           4813a0e5f815   10 days ago   480MB
#导入后库名与标签为none

#指定标签导入
[root@local ~]# docker image import /tmp/canyun_docker_tomcat2.tar.gz canyun:latest
sha256:a6af80e948be1a22dce978749dad35969bd7eef0aea4e3522098761d848e3535
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
canyun       latest    a6af80e948be   4 seconds ago   486MB
           4813a0e5f815   10 days ago     480MB

5.1.9 清除无效镜像 (prune)

所谓的无效的镜像我们指的就是没有镜像名称和标签的
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
canyun       latest    a6af80e948be   4 seconds ago   486MB
           4813a0e5f815   10 days ago     480MB
[root@local ~]# docker image prune
WARNING! This will remove all dangling images.

Are you sure you want to continue? [y/N] Y
Deleted Images:
deleted: sha256:4813a0e5f815c2f686a8e41d879735dc1ba1c2dc3b059223e9d0467e4fbf48ae
deleted: sha256:6263f68f8705cf7609f607c8d619c5151425126082ce197600039913c232a1fb
deleted: sha256:c905f33549a11869176f6697bd7b20e076c018e04532bdf0ae45e1308f969933
deleted: sha256:6e6af734a6437c86a45e0ce53da33fae0cadf54504eb4753a6fd1a879ef9b88d
deleted: sha256:f415aa1e1cc2befb567a9de49e61a5ae64017c088f0f9af7db6853a0ea9b0bd4
deleted: sha256:dd96e1d720e7faae18ba9749c7a76ec07c39438cea3b4524c8e51c0a97e4c169
deleted: sha256:8ea98ddb7c7042ae259a9b82cbd8e2ed0c365d9fc0889010e72772e2e7fff9a3
deleted: sha256:af7ed92504ae4c20128a0f01048d41d467fef5c795c38d0defdb998a187ed1d4

Total reclaimed space: 480.3MB
[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
canyun       latest    a6af80e948be   2 minutes ago   486MB

5.2 容器相关

5.2.1 创建容器(create)

[root@local ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
canyun       latest    a6af80e948be   20 hours ago   486MB
nginx        latest    55f4b40fe486   2 days ago     142MB
[root@local ~]# docker create nginx:latest
c716cc6c39ae461283c9b14ee435d25358242b66705dca09c42f8f6c09b8f9ca
如果没有镜像则先下载镜像,然后创建容器
#新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

格式:docker create [选项] 镜像
常用选项:
-i:让容器的输入保持打开
-t:让 Docker 分配一个伪终端

5.2.2 查看已创建的容器(ps)

Docker简介与安装
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS    PORTS     NAMES
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   2 minutes ago   Created             friendly_zhukovsky

5.2.3 运行容器(start)

[root@local ~]# docker start c716cc6c39ae
c716cc6c39ae
[root@local ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS          PORTS     NAMES
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   5 minutes ago   Up 11 seconds   80/tcp    friendly_zhukovsky

5.2.4 停止容器(stop)

[root@local ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS          PORTS     NAMES
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   5 minutes ago   Up 11 seconds   80/tcp    friendly_zhukovsky
[root@local ~]# docker stop c716cc6c39ae
c716cc6c39ae
[root@local ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

5.2.5 重启容器 (restart)

[root@local ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS          PORTS     NAMES
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   8 minutes ago   Up 13 seconds   80/tcp    friendly_zhukovsky
[root@local ~]# docker restart c716cc6c39ae
c716cc6c39ae
[root@local ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   8 minutes ago   Up 6 seconds   80/tcp    friendly_zhukovsky

5.2.6 创建并启动一个容器 (run)

Docker简介与安装
[root@local ~]# docker run httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
b85a868b505f: Already exists
f05e6391d558: Pull complete
95901502a360: Pull complete
2ea5a609d7db: Pull complete
3974bb700c53: Pull complete
Digest: sha256:886f273536ebef2239ef7dc42e6486544fbace3e36e5a42735cfdc410e36d33c
Status: Downloaded newer image for httpd:latest
WARNING: IPv4 forwarding is disabled. Networking will not work.

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
[Sun Jun 26 02:23:31.265610 2022] [mpm_event:notice] [pid 1:tid 140465892928832] AH00489: Apache/2.4.54 (Unix) configured -- resuming normal operations

5.2.7 删除容器(rm)

#基于id删除
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS                     PORTS      NAMES
8f8d730d975b   tomcat         "catalina.sh run"        About a minute ago   Up About a minute          8080/tcp   beautiful_cori
48f971d85342   tomcat         "-d"                     3 minutes ago        Created                    8080/tcp   sweet_hamilton
168f5d59a35d   httpd          "-d"                     5 minutes ago        Created                    80/tcp     strange_jones
207af9dd350f   httpd          "httpd-foreground"       5 minutes ago        Exited (0) 5 minutes ago              musing_goldwasser
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   19 hours ago         Up 19 hours                80/tcp     friendly_zhukovsky
[root@local ~]# docker rm 168f5d59a35d
168f5d59a35d
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                     PORTS      NAMES
8f8d730d975b   tomcat         "catalina.sh run"        2 minutes ago   Up 2 minutes               8080/tcp   beautiful_cori
48f971d85342   tomcat         "-d"                     4 minutes ago   Created                    8080/tcp   sweet_hamilton
207af9dd350f   httpd          "httpd-foreground"       6 minutes ago   Exited (0) 6 minutes ago              musing_goldwasser
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   19 hours ago    Up 19 hours                80/tcp     friendly_zhukovsky
#基于名称删除
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                     PORTS      NAMES
8f8d730d975b   tomcat         "catalina.sh run"        2 minutes ago   Up 2 minutes               8080/tcp   beautiful_cori
48f971d85342   tomcat         "-d"                     4 minutes ago   Created                    8080/tcp   sweet_hamilton
207af9dd350f   httpd          "httpd-foreground"       6 minutes ago   Exited (0) 6 minutes ago              musing_goldwasser
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   19 hours ago    Up 19 hours                80/tcp     friendly_zhukovsky
[root@local ~]# docker rm sweet_hamilton
sweet_hamilton
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                     PORTS      NAMES
8f8d730d975b   tomcat         "catalina.sh run"        4 minutes ago   Up 4 minutes               8080/tcp   beautiful_cori
207af9dd350f   httpd          "httpd-foreground"       8 minutes ago   Exited (0) 8 minutes ago              musing_goldwasser
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   19 hours ago    Up 19 hours                80/tcp     friendly_zhukovsky
批量删除容器
[root@local ~]# docker ps -a -q
8f8d730d975b
207af9dd350f
c716cc6c39ae
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS      NAMES
8f8d730d975b   tomcat         "catalina.sh run"        8 minutes ago    Up 8 minutes                8080/tcp   beautiful_cori
207af9dd350f   httpd          "httpd-foreground"       12 minutes ago   Exited (0) 12 minutes ago              musing_goldwasser
c716cc6c39ae   nginx:latest   "/docker-entrypoint...."   19 hours ago     Up 19 hours                 80/tcp     friendly_zhukovsky
[root@local ~]# docker container rm -f docker container ps -a -q
8f8d730d975b
207af9dd350f
c716cc6c39ae
[root@local ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

…………………………待续

Original: https://www.cnblogs.com/Canyun-blogs/p/16415084.html
Author: 残-云
Title: Docker简介与安装

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606544/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【k8s】kubeadm init 时报错 unknown service runtime.v1alpha2.RuntimeService

    在测试机器中准备搭建 k8s 集群,在 master 节点执行 kubeadm init 时出现报错, unknown service runtime.v1alpha2.Runti…

    Linux 2023年6月7日
    0123
  • ACP 知识点总结

    记录下学习ACP过程不断遇到的且需要记录的知识点: 在阿里云专有网络VPC创建之后,路由器也是随着VPC一起自动创建,所以不需要手动创建,这个时候需要继续创建交换机才能在交换机种创…

    Linux 2023年6月14日
    091
  • Java学生管理系统(详解)

    下面会分享我在做这个练习时的一些方法以及程序代码 供大家参考(最后附上完整的项目代码)。 首本人只是个初学Java的小白,可能项目中有许多地方使用不规范的以及代码的格式问题会引起各…

    Linux 2023年6月6日
    088
  • Java实现链表

    3、链表 MyLinkedList 有一个头指针,一个尾指针,还有链表长度size 内有两个类,一个是实现了Iterator接口的迭代器类,另一个是Node类,其中Node数据结构…

    Linux 2023年6月14日
    094
  • 网络扫描(二)

    免责声明:本文所述工具只用于网络安全的学习与研究。严禁任何阅读本文的读者利用本文所述工具进行违法犯罪活动。如有任何法律纠纷本文作者概不负责。 上一篇博文讲到了fping工具和nma…

    Linux 2023年6月14日
    093
  • Redis 常用五种数据类型编码

    1.String 1.1 常用命令 (1)设置值 set key value [ex seconds] [px milliseconds] [nx|xx] set命令有几个选项: …

    Linux 2023年5月28日
    098
  • 【Docker搭建】3. 在Docker中搭建Zookeeper集群

    docker pull zookeeper docker run –name zk1 -d zookeeper apt-get update apt-get install vi…

    Linux 2023年6月13日
    095
  • Python 中 map() zip() list() 函数的介绍

    map() map(function , iterable, ….) : 依次将函数function作用在可迭代的list上,并返回对应的函数返回值,组成新的list(…

    Linux 2023年6月7日
    0106
  • Linux文件查找命令find与三剑客之grep

    一、find 根据文件的名称或者属性查找文件。 语法格式: find [查找范围] [参数] 参数: -name : 按照文件的名字查找文件 * :通配符 -iname : 按照文…

    Linux 2023年5月27日
    0161
  • scp 远程安全复制文件

    scp是 secure copy 的缩写,相当于 cp命令 + SSH。它的底层是 SSH 协议,默认端口是22,相当于先使用 ssh命令登录远程主机,然后再执行拷贝操作。 scp…

    Linux 2023年6月7日
    097
  • vm-tools安装

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月6日
    074
  • shell之常用的一些命令2

    前言 自我感觉学习shell要常用man,–help这样挺方便去写的,光靠熟练远远不够的 bash;gutter:false;</p> <h1>!/bin…

    Linux 2023年6月8日
    081
  • LeetCode-329. 矩阵中的最长递增路径

    题目来源 329. 矩阵中的最长递增路径 题目详情 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向…

    Linux 2023年6月7日
    074
  • 使用input+datalist简单实现实时匹配的可编辑下拉列表-并解决选定后浏览器默认只显示value的可读性问题

    问题背景 最近小伙伴提了一个希望提高后台下拉列表可操作性的需求,原因是下拉列表选项过多,每次下拉选择比较费时费力且容易出错,硬着头皮啃了啃前端知识,网上搜寻了一些下拉列表实现的资料…

    Linux 2023年6月6日
    094
  • php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/; 还有class.smtp.php. 2.去配置一…

    Linux 2023年6月14日
    081
  • THE EVOLUTION OF INTELLECTUAL FREEDOM;

    分享几张有趣的图: 1:http://www.cs.cmu.edu/~dskarlat/ 2022-03-03 17:47 2:https://www.zhihu.com/ques…

    Linux 2023年6月14日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球