Docker学习笔记1-初识Docker


Docker其实在几年前就比较火了,但是一直有其概念,没有系统学习过。这里就将学习过程中的笔记整理一下。

1. 概念

Dockek是一个能够把开发的应用程序自动部署到容器的开源引擎, 由Go语言编写,给予Apache License 2.0开源协议授权发行。

1.1 优点
  • 提供了简单,轻量的建模方式
  • 职责逻辑分离
  • 快速、高效的开发生命周期
1.2 Docker核心组件
  • Docker客户端和服务端,也称Docker引擎

    架构图如下:

  • Docker镜像

  • Registry
    用来保存用户构建的镜像。它分公共和私有两种。

  • Docker容器

2. 安装

这里分系统平台,安装过程很简单,略。

3. 入门

假设Docker已安装完成。

3.1 查看Docker基本信息

查询Docker基本信息,执行 docker info 命令:

 ~ docker info
Client:
 Debug Mode: false

Server:
 Containers: 3
  Running: 0
  Paused: 0
  Stopped: 3
 Images: 1
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 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: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.76-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 1.944GiB
 Name: docker-desktop
 ID: JNLA:MK5C:BZAN:VLG5:M2FB:7Z7P:5WUC:QVS4:SPBA:STXW:HS5R:XSXA
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: gateway.docker.internal:3128
 HTTPS Proxy: gateway.docker.internal:3129
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine
3.2 运行第一个容器

docker run -it ubuntu /bin/bash

docker run命令表示要运行一个docker容器
-i 参数保证容器STDIN开启
-t 告诉Docker为要创建的容器分配一个伪tty终端
这样,新建的容器才能提供一个交互式shell

执行完后,就能进入容器了:
在这里插入图片描述
我们就可以看到这个容器的Shell了。

3.3 查看容器列表

docker ps // 查看正在运行的容器列表
docker ps -a // 查看所有的容器列表(包括已经停止运行的容器)
docker inspect [容器名称|容器ID] // 详情

~ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
3a9b94ff7c4d        ubuntu              "/bin/bash"         9 minutes ago       Exited (0) 2 seconds ago                         practical_ritchie
b6ad6a2f8235        ubuntu              "/bin/bash"         14 minutes ago      Exited (127) 9 minutes ago                       angry_fermi
1c397efd5e7a        ubuntu              "/bin/bash"         42 minutes ago      Exited (0) 16 minutes ago                        determined_fermat
47dbc38c7c57        ubuntu              "/bin/bash"         45 minutes ago      Exited (0) 45 minutes ago                        mystifying_payne
ac1d490e4312        ubuntu              "/bin/bash"         46 minutes ago      Exited (0) 45 minutes ago                        stupefied_almeida

图中可以看到,每个容器是有名字的,如果没有特意指定,则系统默认给出。

有三种方式可以唯一指定容器

  • UUID
  • 长UUID
  • 名称
3.4 容器命名

docker run --name my_container -it ubuntu /bin/bash

可以看到,多增加一个–name参数即可。
关于名称的规范需符合如下正则:
[a-zA-Z0-9_.-]

3.5 重启容器

docker start my_container // 根据容器名称启动
docker start 3a9b94ff7c4d // 根据容器ID启动

3.6 停止容器

docker stop my_container // 根据容器名称停止
docker stop 3a9b94ff7c4d // 根据容器ID停止

3.7 删除容器

docker rm my_container // 根据容器名称删除
docker rm 3a9b94ff7c4d // 根据容器ID删除

该命令执行成功前提是:容器已停止

删除所有容器:
docker rm \docker ps -a -q``

-q参数表示只返回容器ID

3.8 创建守护容器

docker run --name my_daemon -d ubuntu /bin/bash -c "while true; do echo 'hello world'; sleep 10; done"

-d参数,Docker会将容器放到后台运行。

3.9 获取守护容器日志

docker logs my_daemon
docker logs -rt my_daemon

3.10 查看守护式容器进程

docker top my_daemon
该命令执行后,可以看到容器内所有进程的用户及进程ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值