专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

docker 入门

57_1.png

前言

「实践出真知」,话不多说,直接开干!

环境:

centos # 1、vmare自己搭一个 2、阿里云或者腾讯云买一个,新用户很便宜的
docker 

docker 安装

# 在线安装
yum install docker

Dockerfile

在home/demo目录创建一个Dockerfile

# An example Dockerfile for installing Git on Ubuntu
FROM ubuntu:latest
LABEL maintainer="dia@allingeek.com"
RUN apt-get update && apt-get install -y git
ENTRYPOINT ["git"]

构建镜像

命令最后有个. 注意看!!!

# -t 指定镜像名称 
# -f 制定Dockerfile所在的目录
# . 代表指定镜像构建过程中的上下文环境的目录
docker build -t test/myapp -f /home/demo/Dockerfile .

57_2.png

查看镜像是否构建成功

docker images
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
test/myapp                               latest              ce7b2e1448f3        39 hours ago        198 MB

运行容器

docker run myapp
# 成功输出git命令 就表示ok了
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
 [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] 

docker ps -a 代表曾经来过

docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                      PORTS               NAMES
3c87b12a5334        test/myapp                     "git"                    3 minutes ago       Exited (1) 3 minutes ago                        silly_lichterman

恭喜你!完成了第一关的考验!come on!

docker 简介

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

镜像(images)与容器(container)

镜像就像一个安装包 容器就是安装好之后的软件,你可以启动、停止、删除它

容器与虚拟机

容器在宿主机上运行,并与其他容器共享主机的内核。本质上是一个运行的进程,不占用比任何其他可执行文件更多的内存,这使得它是轻量级的。

57_3.png

相对的,虚拟机(VM)运行一个完整的操作系统,通过管理程序虚拟访问主机资源。通常,虚拟机会产生比应用程序所消耗的更多的开销。

57_4.png

容器启动流程

57_5.png

Docker Engine

Docker Engine是一个客户端-服务器应用程序,具有以下主要组件:

1、一个长期运行的后台服务,称为守护进程(dockerd命令)。

2、一个REST API,应用程序与守护进程对话并指示它做什么的接口。

3、一个命令行工具(CLI,docker命令)。

57_6.png

Docker Registries

docker registry是存储镜像的仓库。Docker Hub是任何人都可以使用的公共镜像仓库,默认情况下docker会从Docker Hub里面去查找镜像。同时用户可以自定义私有的仓库。 当使用docker pull或者docker run命令的时候,会从配置好的镜像仓库去拉取指定镜像。docker push命令则会将镜像推送到配置的仓库。

Docker 使用

57_7.png

镜像操作

# 镜像搜索 不实用,没法获取镜像tag。推荐直接去Docker Hub上查找
docker search

# 拉取镜像 docker pull centos
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
 # 镜像列表 docker images # 删除镜像 docker rmi hello-world docker rmi # 设置新的版本号 docker tag hello-world:latest hello-world:1.0.0 docker tag # 导出镜像 docker save -- docker save命令只能打包镜像,没有压缩 -- 可以使用gzip -c压缩(会延长加载时间)# docker save hello-world:latest | gzip -c > hello_v3.tar.gz -- save时最好指定版本/tag # 导入镜像 docker image load -i hello_v3.tar.gz docker load -i # 推送镜像 docker push host:port/hello-world:1.0.0 docker push -- push可以将本机镜像推送到特定镜像仓库 -- 比如公共Docker Hub(需要docker login)或者私有仓库(Docker Registry,指定host和port) # 清除所有tag为 <none> 的镜像 docker rmi $(docker images | grep "<none>" | awk -F' ' '{print $3}') 或者 docker images|grep "<none>" | awk '{print $3 }'| xargs docker rmi --force # 删除未使用镜像 docker image prune 

容器操作

# 查看镜像列表
docker images
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos                         latest              831691599b88        5 weeks ago         215 MB

# 运行容器 docker run docker.io/centos 或者 docker run 831691599b88 # 查看正在运行的容器 docker ps # 停止容器 docker stop # 重启容器 docker restart # 查看容器日志 docker logs # 查看容器详细信息 docker inspect # 移除容器,如果正在运行,先暂停容器 docker rm # 移除所有不在运行的容器 docker container prune # 停止所有容器 docker ps -aq | xargs docker stop # 移除所有容器 docker ps -aq | xargs docker rm # 移除所有已退出容器 docker ps -a | grep "Exited" | awk '{print $1 }'| xargs docker rm # 备份容器到镜像,生成一个容器的快照 docker commit -p 831691599b88 container-backup 

参考

https://poleljy.gitee.io/iCoding/

https://docs.docker.com/engine/reference/run/

本文使用 mdnice 排版

文章永久链接:https://tech.souyunku.com/27468

未经允许不得转载:搜云库技术团队 » docker 入门

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们