返回介绍

docker 简介与安装

发布于 2024-01-20 01:25:02 字数 6561 浏览 0 评论 0 收藏 0

Docker 是一个跨平台的开源的应用容器引擎,诞生于 2013 年初,基于 Go 语言 并遵从 Apache2.0 协议开源

刚开始学 Docker 你可以把它理解成我们以前学过的虚拟机,但是 Docke 和传统虚拟化方式 的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系 统上再运行所需应用进程;Docker 相比传统的虚拟化技术要更轻量级,Docker 容器内的应 用程序是直接运行在宿主内核中的,容器内没有自己的内核,也没有进行硬件虚拟

因此 Docker 容器要比传统虚拟机占用资源更小、系统支持量更大、启动速度更快、更容易 维护和扩展。 目前 Docker 是全栈开发者必备的技能之一。 官网: https://hub.docker.com

为什么要使用 Docker

  • 开发人员利用 Docker 快速部署 调试我们的应用
  • 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作,其他机器不能正 常工作”的问题。Docker 可以提供一致的运行环境,开发过程中一个常见的问题是环境一致 性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被 发现。
  • 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用
  • Serverless 也是基于 docker 容器技术

mac docker 安装

本地 docker 环境搭建

mac 下安装 docker: brew install docker ,或者下载安装 https://docs.docker.com/docker-for-mac/install

https://hub.docker.com 拉取镜像速度比较慢,我们推荐使用国内的镜像源访问速度较快 https://hub.daocloud.io

设置国内镜像源

{
  "registry-mirrors": [
  "https://register.docker-cn.com/"
  ],
}

进入该网站 https://hub.daocloud.io 获取镜像的下载地址

docker 命令基础

  • docker images 查看镜像
  • docker ps 查看启动的容器 ( -a 查看全部)
  • docker rmi 镜像 ID 删除镜像
  • docker rm 容器 ID 删除容器
  • docker exec -it 1a8eca716169(容器 ID:docker ps 获取) sh 进入容器内部
  • docker inspect bf70019da487(容器 ID) 查看容器内的信息

删除 none 的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。

$ docker rmi $(docker images | grep "none" | awk '{print $3}')
$ docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器

$ docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器

$ docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像

docker info 命令可以查看 Docker 容器的配置信息,包括镜像源、网络、磁盘、内存、系统等。

$ docker info
Client:
 Context:  default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.8.2)
  compose: Docker Compose (Docker Inc., v2.4.1)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 3
  Running: 1
  Paused: 0
  Stopped: 2
 Images: 5
 Server Version: 20.10.14
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc version: v1.0.3-0-gf46b6ba
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.10.104-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.843GiB
 Name: docker-desktop
 ID: PLR7:VYHP:QZEW:EDCY:4EDN:K77K:M7H5:CHIG:VRZE:OD34:TACY:4MI5
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  127.0.0.0/8
 Registry Mirrors:
  https://register.docker-cn.com/
 Live Restore Enabled: false

Linux 中安装 docker

安装工具包

yum install yum-utils device-mapper-persistent-data lvm2 -y

设置阿里镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 docker

yum install docker-ce docker-ce-cli containerd.io -y

启动 docker

systemctl start docker

# 设为开机启动
systemctl enable docker

设置 docker 镜像源

vi /etc/docker/daemon.json
{
  "registry-mirrors": [
  "https://register.docker-cn.com/"
  ],
}

后续拉取镜像直接从 https://hub.docker.com 网站拉取速度更快

重启 docker

systemctl restart docker

安装指定版本的 docker

  • 要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装: 一种。
  • 列出并排序您的存储库中可用的版本。此示例按版本号对结果进行排序,从高到低, 并被截断:
yum list docker-ce --showduplicates | sort -r

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.i o

卸载 docker

  • 卸载 Docker Engine、CLI 和 Containerd 包: $ sudo yum remove docker-ce docker-ce-cli containerd.io
  • 主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷
    • $ sudo rm -rf /var/lib/docker
    • $ sudo rm -rf /var/lib/containerd
    • 您必须手动删除任何已编辑的配置文件

阿里云 Docker 镜像加速器

访问 https://www.aliyun.com/ 搜索 “容器镜像服务”

您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://l6of9ya6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文