从零开始学Docker(二):启动第一个Docker容器

这篇具有很好参考价值的文章主要介绍了从零开始学Docker(二):启动第一个Docker容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

宿主机环境:RockyLinux 9

这个章节不小心搞成命令学习了,后面在整理成原理吧

Docker生命周期

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

拉取并启动Nginx容器

# 查找镜像 例如:nginx
[root@192 ~]# docker search nginx

我们可以看到,第一个时官方认证构建的nginx 

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

# 拉取下载镜像 docker pull nignx,这个和git很像,git pull xxx
[root@192 ~]# docker pull nginx

如下,这里我们使用的是简单的pull操作,默认下载的是最新版本 latest

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

 拉取镜像后查看镜像列表 

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

运行该nginx镜像,创建一个具体的容器,然后在这个容器中,就跑着一个nginx服务了

# 运行镜像的命令,格式:docker run 参数 镜像的名字/ID
# -d:后台运行容器,-p:端口映射,宿主机端口:容器内端口,
# 当我们访问宿主机端口时,也就时访问容器内的端口
[root@192 ~]#  docker run -d -p 80:80 nginx

#在我们运行完容器后,会返回一个容器ID
[root@192 ~]# docker run -d -p 80:80 nginx
870be1725361eb35588a55641b9637f6b395741ad642e6afeeeda2edbd23c5c3

 执行命令 docker ps 我们可以查看到当前的容器列表,此时能看到容器80端口已经映射到宿主机上面了 

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生 在浏览器访问宿主机的80端口,就能看到容器内80端口运行的是什么

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生 查看宿主机的网络配置,能够看到80端口,这里显示进程名称的并不是nginx,而是docker-proxy,这是docker启动的代理程序,将宿主机的80端口,代理到容器内的80端口

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

停止容器,docker stop 容器ID,停止容器后再去docker ps查看容器,之前的nginx已经没有了

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生

 进入正在运行的容器内,查看容器的运行系统,执行命令:docker exec -it 容器ID bash

从零开始学Docker(二):启动第一个Docker容器,从零开始学Docker,docker,容器,云原生文章来源地址https://www.toymoban.com/news/detail-619913.html

 Docker命令学习

# 默认的docker仓库是dockerhub,有大量优质的镜像,以及用户自己上传的镜像

[root@192 ~]# docker search 镜像名:tag,tag就是具体的标签版本

# 查看当前docker版本:
[root@192 ~]# docker version

#查看当前docker镜像文件:
[root@192 ~]# docker images 或 docker image ls

# 查看当前docker运行中的容器:
[root@192 ~]# docker ps

# 下载docker镜像:
docker pull 镜像名, # 默认的是 latest,
# 还可以指定版本
[root@192 ~]# docker pull 镜像名:版本号

# 查看docker服务信息
[root@192 ~]# docker info

# 查看docker的数据目录
[root@192 etc]# docker info | grep Root
 Docker Root Dir: /var/lib/docker

[root@192 ~]# ls /var/lib/docker
buildkit  containers  engine-id  image  network  overlay2  plugins  runtimes  swarm  tmp  volumes

# 存放docker镜像文件的目录
[root@192 sha256]# ll /var/lib/docker/image/overlay2/imagedb/content/sha256
total 8
-rw------- 1 root root 8149 Jul 29 08:50 89da1fb6dcb964dd35c3f41b7b93ffc35eaf20bc61f2e1335fea710a18424287
[root@192 sha256]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    89da1fb6dcb9   24 hours ago   187MB

# 当我们查看镜像文件时,可以看到是JSON数据类型的文件,其作用是记录 镜像和容器的配置关系
[root@192 sha256]# cat 89da1fb6dcb964dd35c3f41b7b93ffc35eaf20bc61f2e1335fea710a18424287 

#-it:开启一个交互式的终端, --rm 容器退出时删除该容器
[root@192 sha256]# docker run -it --rm --name nginx01 nginx bash

# 查看镜像列表
[root@192 sha256]# docker images

# 查看某个镜像信息
[root@192 sha256]# docker images nginx

# 查看某个镜像信息,具体到某个tag
[root@192 sha256]# docker images nginx:tag名

# 格式化显示镜像列表,--format后跟docker的模板语言
[root@192 sha256]# docker images --format "{{.ID}}--{{.Repository}}"

# 以表格形式显示镜像信息
[root@192 sha256]# docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

# 下载镜像
[root@192 sha256]# docker run hello-world

# 查看当前镜像信息
[root@192 sha256]# docker images 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    89da1fb6dcb9   24 hours ago   187MB
hello-world   latest    9c7a54a9a43c   2 months ago   13.3kB

# 删除镜像:名称、ID
[root@192 sha256]# docker rmi hello-world
[root@192 sha256]# docker rmi 9c7a54a9a43c

# 导出镜像,并重定向至/opt目录
[root@192 sha256]# docker image save nginx > /opt/nginx001.taz
[root@192 sha256]# ls /opt/
containerd  nginx001.taz

# 导入镜像
[root@192 opt]# docker images 
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@192 opt]# docker image load -i /opt/nginx001.taz 
c6e34807c2d5: Loading layer [==================================================>]  77.81MB/77.81MB
24ee1d7d6a62: Loading layer [==================================================>]  113.2MB/113.2MB
4deafab383fa: Loading layer [==================================================>]  3.584kB/3.584kB
8aedfcd777c7: Loading layer [==================================================>]  4.608kB/4.608kB
c88d3a8ff009: Loading layer [==================================================>]   2.56kB/2.56kB
abc3beec4b30: Loading layer [==================================================>]   5.12kB/5.12kB
922d16116201: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
[root@192 opt]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    89da1fb6dcb9   25 hours ago   187MB

# 查看docker镜像详细信息 
[root@192 opt]# docker image inspect 镜像ID


Docker容器管理

# docker run 镜像名,如果镜像不存在本地,则会在线区下载镜像
# 容器内的进程必须处于前台运行状态,否则容器就会直接退出

# 运行容器,切进入容器内
[root@192 ~]# docker run -it nginx bash

# 查看docker容器的运行日志
[root@192 ~]# docker logs 容器ID
# -f 实时打印日期
[root@192 ~]# docker logs -f 容器ID
# 使用管道符,查看最新的5条日志
[root@192 ~]# docker logs  容器ID| tail  -5

# 进入到正在运行的容器内
[root@192 ~]# docker exec -it 容器ID bash

# 查看容器的详细信息
[root@192 ~]# docker container inspect 容器ID

# 后台运行docker容器,容器名称为nginx001,且端口映射宿主机的85端口,访问到容器内的80端口
[root@192 ~]# docker run -d -p 85:80 --name nginx001 nginx 
6627aa9383d993ed1be7031841daf7cecaefadea8cf1ea678fd3b8121aed2c15
[root@192 ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
6627aa9383d9   nginx     "/docker-entrypoint.…"   8 seconds ago   Up 8 seconds   0.0.0.0:85->80/tcp, :::85->80/tcp   nginx001
[root@192 ~]# docker port 6627aa9383d9
80/tcp -> 0.0.0.0:85
80/tcp -> [::]:85

# docker 容器提交
[root@192 ~]# docker commit 6627aa9383d9 nginx_hunter
sha256:53807fe50cade428944877195e5db131a0868052770f0b393d424f14fbe3ba03
[root@192 ~]# docker images 
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
nginx_hunter   latest    53807fe50cad   5 seconds ago   187MB
nginx          latest    89da1fb6dcb9   25 hours ago    187MB

到了这里,关于从零开始学Docker(二):启动第一个Docker容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生 | 从零开始学Docker】三、Docker实战之安装Nginx和Tomcat

    该篇文章已经被专栏《从零开始学docker》收录 通过前面两章的学习,相信各位朋友们都在自己的服务器上安装了docker了,也熟悉了一些常用的指令,这里我带着大家去做一些简单的实战来让各位更熟悉这些指令!接下来的内容最好跟着敲一遍,记一下步骤,能让你更深刻理解

    2023年04月08日
    浏览(44)
  • 【云原生 | 从零开始学Docker】七丶实战提交自己的镜像以及docker网络

    该篇文章已经被专栏《从零开始学docker》收录 为了巩固dockerfile,我们这里来进行真实的实战。 jdk 下载linux.tar.gz tomcat 最新版就行 首先我们要 vim Dockerfile 以此来创建一个叫dockerfile的文件。注:官方指定命名,build自动寻找,不需要-f指定 然后编写以上的脚本内容加入到dock

    2024年02月02日
    浏览(54)
  • 【Docker 】Docker 客户端,容器使用,启动容器,启动已停止运行的容器,停止一个容器,进入容器

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 可以通过命令 dock

    2024年02月11日
    浏览(44)
  • docker 运行一个Ubuntu 容器 无法启动的问题

    我的环境 : Windows docker desktop + WSL2 Ubuntu 20.04 + Windows Terminal 运行一个Ubuntu容器 (这一步已经有问题了) 查看已有的容器: 发现我们已经根据 Ubuntu镜像创建了一个容器 查看在运行的容器 但是发现没有在运行的容器 手动启动一下创建的Ubuntu容器 然后再次查看正在运行的容器 do

    2024年02月02日
    浏览(40)
  • 从零开始学Docker(一):Docker的安装部署

    前述:本次学习与整理来至B站【Python开发_老6哥】老师分享的课程,有兴趣的小伙伴可以去加油啦,附链接 宿主机环境:RockyLinux 9 Docker引擎主要有两个版本:企业版(EE)和社区版(CE) 每个季度(1-3,4-6,7-9,10-12),企业版和社区版都会发布一个稳定版本(Stable)。社区版本会

    2024年02月15日
    浏览(48)
  • 从零开始学Docker(三)

    Docker Compose 是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止 下载安装 下载docker-compose 访问网站: [Release v2.14.2 · docker/compose · GitHub](https://github.com/docker/compose/releases) 上传到linux 移动到/usr/local/bin目录下 添加执行权

    2024年02月03日
    浏览(41)
  • 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄)↗ Docker介绍和基础使用

    文章目录 Docker简介和安装和基础配置 Docker简介 安装Docker Desktop 换源 Docker基础使用 对Docker操作 对镜像的基础操作 获取当时所有镜像(docker images) 拉去镜像(docker pull) 删除镜像(docker rmi) 加载镜像(docker run) 使用交互式容器 查看容器(docker ps) 启动和关闭容器 操作后台容器 删除容

    2024年02月15日
    浏览(39)
  • docker从零开始(2)----应用部署/dockerfile

    通信 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和机器可以直接通信 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。这种操

    2024年02月07日
    浏览(56)
  • 从零开始:如何使用Docker构建微服务架构

    使用 Docker 构建微服务架构是一种流行的方法,因为 Docker 提供了轻量级的容器化技术,使得每个微服务可以在隔离的环境中独立运行。从零开始构建这样的架构涉及到多个步骤,包括理解微服务架构的基本概念、安装 Docker、创建 Docker 容器和镜像、配置网络,以及部署和管理

    2024年04月14日
    浏览(55)
  • 【Docker】从零开始:6.配置镜像加速器

    镜像加速器是一个位于Docker Hub之前的缓存服务器,用于加速Docker镜像的下载。当我们配置了镜像加速器后,从Docker Hub下载镜像时,Docker将首先尝试从加速器服务器下载镜像,如果加速器服务器上没有该镜像,则会从Docker Hub下载。 Docker加速器是一种工具,可以加速Docker镜像的

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包