带你从零开始认识docker【入门到部署】

概念

Docker是一个开源的应用容器引擎,它是基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。通过容器可以实现方便快速并且与平台解耦的自动化部署方式,无论你部署时的环境如何,容器中的应用程序都会运行在同一种环境下。并且它是完全使用沙箱机制,相互之间是隔离的,更重要的是容器性能开销极低。

Docker 作为轻量级虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。

安装

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

#关闭防火墙
systemctl stop firewalld.service
setenforce 0
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 

yum安装慢的 可使用下面这条命令切换国内源(点我查看详细信息)

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

windows可下载一个docker desktop桌面端

配置镜像地址

如果在使用过程中发现拉取镜像十分缓慢,那是因为docker服务器是在国外的,但我们可以通过配置docker国内镜像来进行加速

镜像加速器镜像加速器地址
Docker 中国官方镜像registry.docker-cn.com
DaoCloud 镜像站f1361db2.m.daocloud.io
Azure 中国镜像dockerhub.azk8s.cn
科大镜像站docker.mirrors.ustc.edu.cn
阿里云ud6340vz.mirror.aliyuncs.com
七牛云reg-mirror.qiniu.com
网易云hub-mirror.c.163.com
腾讯云mirror.ccs.tencentyun.com

点我查看如何切换docker镜像源

docker镜像

Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

docker容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

简单理解就是容器是镜像的一个运行实例。当我们运行一个镜像,就创建了一个容器。

拉取镜像

docker pull [选项] [docker Registry 地址[:端口号]/]仓库名[:标签]

没有指定镜像地址 默认从docker.io拉取镜像
例如

docker pull mysql

查看镜像

docker images

删除镜像

docker rmi <镜像1> [<镜像2>...]

在容器运行镜像

docker run -itd -p 8081:80 --name frontend-container frontend-image
  • -itd:表示后台运行
  • -p 8081:80:表示把nginx容器内的80端口映射到宿主机的8081端口,最后我们宿主机IP:8081的方式访问
  • –name:指定启动后的容器名

查看容器

docker ps -a   // 查看所有容器

删除容器

docker rm -f <container_id>

删除所有容器

docker rm -f $(docker ps -aq)

查看容器日志

docker logs <container_id>

镜像打包部署

docker save 镜像名称 -o 镜像打完后的压缩包名称.tar

例如 给mynestjs 镜像打包

docker save mynestjs  -o mynestjs .tar

在需要部署的地方导入

docker load < mynestjs .tar

总的来说

1. 在项目中新建Dockerfile文件并配置命令,docker就可以把项目打包成一个镜像,这个镜像可以通过镜像打包命令打成一个压缩包,

2. 在需要部署的地方使用docker load 命令将压缩包导入到docker环境中,通过docker run 命令在容器中运行镜像,

3. 注意docker容器端口与宿主机端口的映射,项目运行错误可根据docker log命令排查错误

docker常用令

  1. docker version

    • 显示 Docker 版本信息。
  2. docker info

    • 显示 Docker 系统信息,包括镜像和容器数量。
  3. docker search <image_name>

    • 在 Docker Hub 中搜索镜像。
  4. docker pull <image_name>

    • 从 Docker Hub 下载镜像到本地。
  5. docker images

    • 列出本地所有的 Docker 镜像。
  6. docker rmi <image_id>

    • 删除本地的 Docker 镜像。
  7. docker run [options] <image_name>

    • 创建并启动一个容器。
    • 常用选项:
      • -d 后台运行容器,并返回容器ID。
      • -p 端口映射,格式为:主机(宿主)端口:容器端口。
      • –name 为容器指定一个名称。
      • -v 挂载一个卷,格式为:主机目录:容器目录。
  8. docker ps

    • 列出正在运行的容器。
    • 使用 -a 选项可以查看所有容器,包括未运行的。
  9. docker start <container_id>

    • 启动一个或多个已经被停止的容器。
  10. docker stop <container_id>

    • 停止一个运行中的容器。
  11. docker restart <container_id>

    • 重启容器。
  12. docker rm <container_id>

    • 删除一个或多个容器。
  13. docker logs <container_id>

    • 获取容器的日志。
  14. docker exec -it <container_id> /bin/bash

    • 进入运行中的容器并打开一个交互式的 shell。
  15. docker commit <container_id> <new_image_name>

    • 将容器的当前状态提交为一个新的镜像。
  16. docker build -t <image_name> <Dockerfile_path>

    • 使用 Dockerfile 创建一个新的镜像。
  17. docker network ls

    • 列出所有的 Docker 网络。
  18. docker network create <network_name>

    • 创建一个新的 Docker 网络。
  19. docker volume ls

    • 列出所有的 Docker 数据卷。
  20. docker volume create <volume_name>

    • 创建一个新的 Docker 数据卷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值