《Docker Deep Dive》Note - 纵观 Docker

《Docker Deep Dive》Note

由于GFW的隔离,国内拉取镜像会报TLS handshake timeout的错误;需要配置 registry-mirrors 为国内源解决这个问题。
可以配置为阿里的加速源:https://cr.console.aliyun.com/undefined/instances/mirrors,阿里的加速器可以提升获取Docker官方镜像的速度。
登录开发者账号后,将自己的加速器地址复制到 Docker Settings > Daemon > Registry mirrors 中,并点击 Apply 按钮,等待 Docker 重启完成即可。

纵观 Docker

1. 运维视角

1.1 镜像
  • docker pull
  • docker image ls
# 拉取一个镜像
$ docker pull ubuntu:lastest

latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
Status: Downloaded newer image for ubuntu:latest

# 查看拉取的镜像
$ docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              775349758637        9 days ago          64.2MB
1.2 容器
  • docker container run
  • docker container ls
  • 快捷键 Ctrl+P+Q
# 启动容器
# -it 参数会将 Shell 切换到容器终端
$ docker container run -it ubuntu:latest /bin/bash

[email protected]:/#

Ctrl + P + Q组合键,可以在退出容器的同时还保持容器运行。

# windows下可以通过 tasklist 命令查看进程
$ tasklist /FI "imagename eq docker*"

映像名称                                        PID            会话名                       会话#                 内存使用
========================= ======== ================ =========== ============
Docker for Windows.exe                   13972         Console                     5                      102,560 K
Docker.Watchguard.exe                    3772           Services                     0                      2,252 K
Docker.Watchguard.exe                    4032           Services                     0                      2,228 K

# 查看系统内全部处于运行状态的容器
$ docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
90eb9f237521        ubuntu:latest       "/bin/bash"         21 minutes ago      Up 21 minutes                           focused_shaw
1.3 连接到运行中的容器
  • docker container exec
  • docker container stop
  • docker container rm
  • docker container ls -a
# 将 shell 连接到一个运行中的容器终端
# docker container exec <options> <cotainer-name or container-id> <command/app>
$ docker container exec -it 90eb9f237521 bash

[email protected]:/# 

# 停止一个容器
$ docker container stop 90eb9f237521

90eb9f237521

# 杀死一个容器
$ docker container rm 90eb9f237521

90eb9f237521

# 再次执行 docker container ls 可以查看容器是否已经被删除
# -a 参数可以列出所有(包括停止状态)容器
$ docker container ls -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
# 可以看到容器 90eb9f237521 已经被删除了

2 开发视角

容器即应用。

  • docker image build
# 构建一个镜像
$ docker image build -t test:lastest .

...
Successfully built afe9c1f8a70f
Successfully tagged test:lastest

# 查看已经构建的镜像
$ docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test                lastest             afe9c1f8a70f        44 seconds ago      71.5MB

# 应用容器化
$ docker container run -d --name web1 --publish 8080:8080 test:lastest

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
946d5306bb5e        test:lastest        "node ./app.js"     13 seconds ago      Up 12 seconds       0.0.0.0:8080->8080/tcp   web1

# 此时打开浏览器 localhost:8080 即可看到运行的应用

The end.
Last updated by Jehorn 11/10 2019

原文地址:https://www.cnblogs.com/jehorn/p/11830662.html

时间: 2024-10-01 07:46:48

《Docker Deep Dive》Note - 纵观 Docker的相关文章

《Docker Deep Dive》Note - Docker 引擎

<Docker Deep Dive>Note Docker 引擎 1. 概览 graph TB A(Docker client) --- B(daemon) subgraph Docker 引擎 B --- C(containerd) C --- D(runc) end Docker 引擎是用来运行和管理容器的核心软件. 主要构成:Docker Client.Docker daemon(Docker守护进程).containerd.runc. 2. 详解 graph TB A(Docker c

X64 Deep Dive

zhuan http://www.codemachine.com/article_x64deepdive.html X64 Deep Dive This tutorial discusses some of the key aspects of code execution on the X64 CPU like compiler optimizations, exception handling, parameter passing and parameter retrieval and sh

Docker私有云管理平台————Docker Shipyard

一. Docker Shipyard是什么 ? shipyard是一个开源的docker管理平台,其特性主要包括: 支持节点动态集群,可扩展节点的规模(swarm.etcd方案) 支持镜像管理.容器管理.节点管理等功能 可视化的容器管理和监控管理 在线容器console终端 二. Shipyard中文版源码托管在github(传送门). 1.登陆界面 2.容器列表 3.容器信息创建 4.容器信息 5.终端连接 6.镜像信息 7.节点信息 8.仓库信息 三.shipyard中文版安装(CentOS

理解Docker(1):Docker 安装和基础用法

1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF7

docker 镜像 上传到docker hub

需要按照如下步骤处理: 我一直没有第三步,一直没有成功,直到尝试了一次docker tag ,上传docker hub就没有出现问题了. step1--找到本地镜像的ID:docker images step2--登陆Hub:docker login --username=username --password=password --email=email step3--tag:docker tag <imageID> <namespace>/<image name>:

Docker的安装和使用说明——Docker for Windows

一.Docker安装 1.1官方方法 官方下载页面:http://www.docker.com/products/docker#/windows 官方下载地址:https://download.docker.com/win/stable/InstallDocker.msi 1.2推荐方法: 1.2.1 DockerToolbox官方地址:http://www.docker.com/products/docker-toolbox 官方最新版:https://github.com/docker/to

理解Docker(7):Docker 存储 - AUFS

(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 (7)Docker 存储 - AUFS Docker 存储可以分为分层文件系统和卷,本文将介绍 AUFS 分层文件系统. 1. 基础知识 1.1 Linux 的 rootfs 和 bootfs 一

Docker入门实战-SSH连接docker容器

简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

Docker学习笔记(1-5)安装docker、启动和停止docker

Docker只支持64位,ubuntu.centos.redhat.mac os.windows Linux内核版本>3.10, 检查版本: #uname -i x86_64 #uname -r 3.13.0.40-generic ubuntu 系统上用apt-get安装软件 # 更新仓库 sudo apt-get update # 安装docker sudo apt-get install docker.io # 检查运行 ps axf | grep docker 结果:12561 ? Ssl