docker基础命令和容器管理命令
  eCzDQ3mUTle2 2023年11月02日 56 0

1. docker基础操作

  1. docker镜像(Images): docker镜像是一个只读的模板,用于创建docker容器,包含了运行应用程序所需要的所有内容:代码、运行时、库、环境变量和配置文件。
  2. docker容器(Containers): docker容器是docker镜像的运行实例。可以看做是一个轻量级的独立系统环境。容器在启动时会创建一层可写层作为最上层,其下层都是只读的
  3. docker Hub/Registry: docker Registry是docker镜像的存储仓库,类似于代码的版本控制,可以公开或私有的存储和分发镜像。docker Hub是 docker公司维护的一个公开的Registry
  4. Dockerfile: Dockerfile是一种由一系列命令和参数构成的脚本,这些命令应用于基础镜像并创建新的docker镜像

1.1 docker search查找镜像

[root@master ~]# docker search centos
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                                       DEPRECATED; The official build of CentOS.       7601      [OK]       
kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            38                   
couchbase/centos7-systemd                    centos7-systemd images with additional debug…   8                    [OK]

解释说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。

.2 docker pull下载镜像

[root@master ~]# docker pull centos

1.3 docker push将本地的镜像推送到远程镜像仓库

[root@master ~]# docker push centos #默认会尝试推送到Docker Hub
#而 Docker Hub 的 centos 镜像是受保护的,只有认证的发布者才能更新
如果你希望将镜像推送到你自己的Docker Hub仓库,你需要先登录到 Docker Hub,然后按照<你的Docker Hub用户名>/<镜像名>:<标签> 的格式对镜像进行标记,然后再推送
[root@master ~]# docker login
[root@master ~]# docker tag centos <你的 Docker Hub 用户名>/centos:tag
[root@master ~]# docker push <你的Docker Hub用户名>/centos:tag

#如果你希望将镜像推送到私有 Docker Registry,你需要先对 Docker 镜像进行标记,然后再推送
[root@master ~]# docker tag centos <你的私有 Registry 地址>/centos:tag
[root@master ~]# docker push <你的私有 Registry 地址>/centos:tag

如果你想将镜像推送到自建的harbor私有镜像仓库,请点击下面的文档查看:

docker中安装最新版私有镜像仓库harbor(v2.8.2 )

当然也可以推送到阿里云,华为云,腾讯云等镜像仓库

1.4 docker images 查看本地镜像

[root@master ~]# docker images

1.5 docker save把镜像做成离线包

[root@master ~]# docker save -o centos.tar centos
# -o 参数用于指定输出文件的路径和名称

1.6 docker load 从离线包导入docker镜像

[root@master ~]# docker load -i centos.tar
# -i 参数用于指定输入文件的路径和名称

1.7 docker rmi 删除镜像包

用于删除一个或多个docker镜像

# -f 参数会强制删除镜像,即使有停止的或者运行中的容器也会强制删除
[root@master ~]# docker rmi -f centos:latest

2. 容器相关操作

2.1 docker run运行容器

[root@master ~]# docker run --name nginx -p 80:80 -d nginx:latest

#--name nginx:这个参数为新启动的容器指定一个名称
#-p 80:80:这个参数将容器的80端口映射到宿主机的80端口。冒号前的80是宿主机的端口号,冒号后的80是容器内的端口号
#-d:这个参数让docker在后台运行容器,并返回容器ID。也就是说,容器在启动后不会占用命令行界面
#nginx:latest:这是想要运行的docker镜像的名称和版本。在这里使用最新版本的nginx镜像
#整个命令的意思是:启动一个名为 "nginx" 的容器,使用最新版本的nginx镜像,将容器的80端口映射到宿主机的80端口,并在后台运行这个容器
#一旦这个命令执行,你就应该可以通过浏览器访问宿主机的80端口,看到nginx的欢迎页面
#如果你无法看到nginx欢迎页面,可能是因为防火墙或者其他安全设置限制了对80端口的访问,或者这个端口已经被其他服务使用


2.2 docker ps 查看正在运行的容器

#查看正在运行的容器
[root@master ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                NAMES
ded9b31818d6   nginx:latest   "/docker-entrypoint.…"   57 seconds ago   Up 56 seconds   0.0.0.0:80->80/tcp   nginx

#查看所有容器,包括运行和退出的容器
[root@master ~]# docker ps -a 

#流量走向:
访问物理节点ip:port(容器在物理节点映射的端口)--容器ip:port(容器里部署的服务的端口)->就可以访问到容器里部署的应用了

2.3 docker stop 停止容器

[root@master ~]# docker stop nginx

2.4 docker start 启动容器

[root@master ~]# docker start nginx

2.5 docker exec 进入容器

[root@master ~]# docker exec -it nginx /bin/bash
# -i 交互式
# -t 分配伪终端
# nginx为容器的名称,也可以指定container_id
# /bin/bash说明你的shell类型为bash

2.7 docker rm 删除容器

#只能删除已经停止运行的容器,除非使用-f选项来强制删除
[root@master ~]# docker rm  nginx #需要提供一个或多个容器ID或容器名称作为参数

#强制删除正在运行的容器
[root@master ~]# docker rm -f nginx

扩展:

docker rm 和docker rmi的区别:

docker rm 删除容器
docker rmi 删除镜像

2.8 查看帮助

[root@master ~]# docker --help

2.9 docker build 需结合dockerfile使用

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   30   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   31   0   0 Docker
  nIt0XG0acU8j   2023年12月11日   31   0   0 linuxhtop
eCzDQ3mUTle2