docker容器

容器

容器是一种沙盒技术,本质是进程。

容器可以将应用与其依赖的环境箱集装箱一样封装起来,方便运输。
容器的启动速度毫秒级别,比虚拟机快得多。
容器之间互相隔离。

docker查看基本信息

docker容器查看docker版本、containerd、runc。

# docker version
Client: Docker Engine - Community
Version: 20.10.4
API version: 1.40
Go version: go1.12.10
Git commit: 9013bf583a
Built: Fri Oct 18 15:52:22 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
 Version: 20.10.4
 API version: 1.40 (minimum version 1.12)
 Go version: go1.12.10
 Git commit: 9013bf583a
 Built: Fri Oct 18 15:50:54 2019
 OS/Arch: linux/amd64
 Experimental: false
containerd:
 Version: 1.2.6
 GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
 Version: 1.0.0-rc8
 GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
 Version: 0.18.0
 GitCommit: fec3683

⚫ OCI:Open Container Initiative的简称,由Linux基金会主导开发OCI规范和标准,目的是
围绕容器格式和Runtime(运行时)制定的一个开放的工业化标准。
⚫ Containerd:Docker为了兼容OCI标准,将容器Runtime及其管理功能从Docker守护进程中
剥离出来,用于不启动Docker也能直接通过Containerd来管理容器。
⚫ RunC:Docker按照OCF(Open Container Format)开放容器格式标准制定的一个轻量级
工具,可以使用RunC不通过Docker引擎即可实现容器的启动、停止和资源隔离等功能。

# docker info
Client: # Client 端
Debug Mode: false # 是否开启 Debug 模式
Server: # Server 端
Containers: 8 # 容器个数
 Running: 4 # 正在运行的容器个数
 Paused: 0 # 暂停的容器个数
 Stopped: 4 # 停止的容器个数
Images: 8 # 镜像个数
Server Version: 20.10.4 # 当前服务器 Docker Server 的版本
Storage Driver: overlay2 # 存储驱动,一般为 overlay2,性能好速度快
 # 其他驱动 aufs、overlay、brtfs
 Backing Filesystem: xfs # 服务器文件系统
 Supports d_type: true # 目录条目类型,用来表示一个文件是文件、管道还是套接字。
 # 在格式化 xfs 文件系统时,必须指定 ftype=1
 Native Overlay Diff: true 
Logging Driver: json-file
# 日志驱动,json-file 表示存在本地
Cgroup Driver: cgroupfs # 限制和隔离的驱动,生产环境建议使用 systemd
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries 
splunk syslog # Docker 支持的日志驱动
Swarm: inactive # Docker 官方的容器编排工具,inactive 不开启,active 开启
...
Docker Root Dir: /var/lib/docker # Docker 根目录,生产环境建议使用 SSD 硬盘,或
者独立的磁盘,不要和系统盘用同一个磁盘。
Debug Mode: false
Registry: https://index.docker.io/v1/ # Docker 官方镜像仓库
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false # Docker 热更新,生产环境建议设置为 true

搜索镜像

# docker search nginx
NAME DESCRIPTION STARS OFFICIAL 
AUTOMATED
nginx Official build of Nginx. 10749 [OK] 
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 
1507 [OK]

下载镜像

docker pull harbor.xxx.net/frontend:v1
# 把公网上的镜像拉取到本地服务器,不指定版本号为 latest
# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest: 
sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Image is up to date for nginx:latest
#拉取指定版本
# docker pull nginx:1.15
1.15: Pulling from library/nginx
Digest: 
sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Downloaded newer image for nginx:1.15

查看本地镜像

# docker images | grep nginx-v2
nginx-v2 latest 3d9c6e44d3db 3 hours ago 
109MB

查看运行的容器

#查看运行的容器
docker ps

#查看运行的容器的ID
docker ps -q

#查看所有容器
docker ps -a 

#查看所有容器的ID,包括以退出的容器
docker ps -aq

查看运行的容器详细信息

docker inspect nginx

更改镜像tag

docker tag nginx-v2 镜像仓库地址/nginx-v2:test
# 如果是推送到自己公司内部的镜像仓库,可以使用如下命令 docker tag nginx-v2 你公司的镜像仓库地址/nginx-v2:test
docker images | grep nginx-v2
dotbalo/nginx-v2 test 3d9c6e44d3db 3 hours ago 
109MB
nginx-v2 latest 3d9c6e44d3db 3 hours ago 
109MB

登录镜像仓库

# docker login 
Login with your Docker ID to push and pull images from Docker Hub. If 
you don't have a Docker ID, head over to https://hub.docker.com to create 
one.
Username :  
Password: 输入仓库密码
Login Succeeded

推送本地镜像到私人镜像仓库

# 如果是推送到自己公司内部的镜像仓库,可以使用如下命令1、docker tag nginx-v2 你公司的镜像仓库地址/nginx-v2:test
#2、docker push 你公司的镜像仓库地址/nginx-v2:test
The push refers to a repository [docker.io/你公司的镜像仓库地址/nginx-v2]
2eaa7b5717a2: Mounted from dotbalo/nginx 
a674e06ede38: Mounted from dotbalo/nginx 
b7efe781401d: Mounted from dotbalo/nginx 
c9c2a3696080: Mounted from dotbalo/nginx 
7b4e562e58dc: Mounted from dotbalo/nginx 
test: digest: sha256:
5d749d2b10150426b510d2c3a05a99cf547c2ca1be382e1dbb2f90b68b6bea96 size: 1362

启动容器

使用 run -ti 前台启动一个容器:

docker run -ti nginx bash
root@23bc7ccabb09:/#
# 也可以使用-ti --rm 参数,表示前台启动的容器退出后即删除

如果一个镜像需要一直运行,可以使用-d 进行后台启动:

docker run -tid nginx bash
1bcf5154d5c3a57d92a6796f526eac2cefd962aaca9cf4098689bfe830bb9e5e
# 也可以使用--restart=always,如果容器异常自动重启

#删除容器
docker rm 容器id

注:如果以bash命令启动,会覆盖nginx的启动命令

端口映射

docker run -ti -p 1111:80 nginx bash 
root@cd676d572188:/#

查看日志

docker logs -f 容器 ID/容器名称 --tail 1 
W0805 09:58:41.745799 8 controller.go:1130] SSL certificate for 
server "xxx" is about to expire (2020-06-19 03:44:03 +0000 UTC)

注:若果容器的日志没有输出到控制台,而是输出到某一文件,那么无法
用此命令查看日志

容器数据持久化

容器重启不会保留容器原来的数据,为了防止数据丢失,你可能需要持久化数据

#宿主机目录:容器目录
#将宿主机的/etc/hosts目录挂载到容器的/etc/hosts下
docker run -ti -p 1111:80 -v /etc/hosts:/etc/hosts nginx bash 
root@cd676d572188:/#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值