目  录

一、Docker 常用命令

docker version 命令

[root@docker ~]# docker version
Client: Docker Engine - Community
Version: 19.03.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
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

可以看到 此处只有 Docker Client 的版本信息,同时显示  Cannot connect to the Docker daemon(Docker Server端)

那么将 Docker 服务启动起来,再次查看 Docker 版本:

[root@docker ~]# systemctl start docker

将 Docker 服务设置为开机自启动:

[root@docker ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

查看 Docker 版本:

[root@docker ~]# docker version
Client: Docker Engine - Community
Version: 19.03.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: 19.03.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.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683

docker info 命令

[root@docker ~]# docker info
Client:
Debug Mode: false Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 19.03.4
Storage Driver: overlay2
Backing Filesystem: xfs
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: b34a5c8af56e510852c35414db4c1f4fa6172339
runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-957.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.777GiB
Name: docker01
ID: IEX4:P4JT:FBHF:D3WZ:SY2U:SRHT:MXBN:U2RA:YFGI:V6U4:NJO6:KFFX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

二、Docker 镜像管理

[root@docker ~]# docker image  ( image 后加一个空格,再按2次 Tab键)
build history import inspect load ls
prune pull push rm save tag

搜索镜像: docker search 镜像名

[root@docker ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12128 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1679 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 744 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 79
bitnami/nginx Bitnami nginx Docker Image 72 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 58 [OK]
nginxdemos/hello NGINX webserver that serves a simple page co… 31 [OK]
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 27 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 26
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 22
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 18 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 17 [OK]
crunchgeek/nginx-pagespeed Nginx with PageSpeed + GEO IP + VTS + more_s… 14
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK]

选镜像的建议:
      1. 优先考虑官方
      2. stars 数量多

获取镜像:docker pull 镜像名

镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker中国官方镜像加速(https://registry.docker-cn.com)

docker pull centos:6.8 (没有指定版本,默认会下载最新版)
      docker pull daocloud.io/huangzhichong/alpine-cn:latest

[root@docker ~]# docker pull nginx:1.16.0
1.16.0: Pulling from library/nginx
9fc222b64b0a: Pull complete
30e9fc7d9c5b: Pull complete
4b3a8aeaa40e: Pull complete
Digest: sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Status: Downloaded newer image for nginx:1.16.0
docker.io/library/nginx:1.16.0

[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.16.0 ae893c58d83f 2 months ago 109MB

查看镜像列表:docker images  或 docker image ls

查看已拉取下来的 Docker 镜像,有两种方法:

[root@docker ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.16.0 ae893c58d83f 2 months ago 109MB [root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.16.0 ae893c58d83f 2 months ago 109MB

查看镜像的详细属性:docker image inspect 镜像名

[root@docker ~]# docker image inspect nginx:latest
[
{
"Id": "sha256:540a289bab6cb1bf880086a9b803cf0c4cefe38cbb5cdefa199b69614525199f",
"RepoTags": [
"nginx:latest"
],
"RepoDigests": [
"nginx@sha256:922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4"
],
"Parent": "",
"Comment": "",
"Created": "2019-10-23T00:26:03.830480202Z",
"Container": "77b8bfc5e16274066a5d4c14915ea5e7387c062f8540cd970c54e9b6e38b1011",
"ContainerConfig": {
"Hostname": "77b8bfc5e162",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.17.5",
"NJS_VERSION=0.3.6",
"PKG_RELEASE=1~buster"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"nginx\" \"-g\" \"daemon off;\"]"
],
"ArgsEscaped": true,
"Image": "sha256:2e2fa75c52fdfe182fb66455d6db04849c683ef01d14a526211ba37831c66791",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"DockerVersion": "18.06.1-ce",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.17.5",
"NJS_VERSION=0.3.6",
"PKG_RELEASE=1~buster"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:2e2fa75c52fdfe182fb66455d6db04849c683ef01d14a526211ba37831c66791",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGTERM"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 126215561,
"VirtualSize": 126215561,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/b866a45f1e1d110b17bbc0387832373b8605e9e171a583ea35f6f3c8e5440a9f/diff:/var/lib/docker/overlay2/0e300469a4c4e8faaca819a513171cb6ad27318c36f716b92ff1974bea68387c/diff",
"MergedDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/merged",
"UpperDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/diff",
"WorkDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:b67d19e65ef653823ed62a5835399c610a40e8205c16f839c5cc567954fcf594",
"sha256:6eaad811af0237b78ba8b44a282d1564259d90007d628a032c5df7e3e2bbb613",
"sha256:a89b8f05da3a2cbe459ef3fecfec8076fd0a7568db81f9164147b6f642e2dadf"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]

删除镜像:docker rmi  或  docker image rm

例如:docker image rm centos:latest

[root@docker ~]# docker rmi nginx:1.16.0
Untagged: nginx:1.16.0
Untagged: nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Deleted: sha256:ae893c58d83fe2bd391fbec97f5576c9a34fea55b4ee9daf15feb9620b14b226
Deleted: sha256:9987b8be475d96bc466b978b64b54af9e556884e78007caa19c065c6723f40e4
Deleted: sha256:5d7e4cc1668a0ce9764e7dad91cfbe594eea3a5b3ac6f4ec229d549cac20fff0
Deleted: sha256:8fa655db5360a336ddd0256f573e27975628668063732ef91f820d4770db737c 或者 [root@docker ~]# docker image rm nginx:1.16.0
Untagged: nginx:1.16.0
Untagged: nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Deleted: sha256:ae893c58d83fe2bd391fbec97f5576c9a34fea55b4ee9daf15feb9620b14b226
Deleted: sha256:9987b8be475d96bc466b978b64b54af9e556884e78007caa19c065c6723f40e4
Deleted: sha256:5d7e4cc1668a0ce9764e7dad91cfbe594eea3a5b3ac6f4ec229d549cac20fff0
Deleted: sha256:8fa655db5360a336ddd0256f573e27975628668063732ef91f820d4770db737c

备注:docker ps -a 查看容器,删除镜像前应先删除掉容器 docker rm CONTAINS_ID

导出镜像:docker save

[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 7 days ago 126MB
nginx 1.16.0 ae893c58d83f 2 months ago 109MB
daocloud.io/huangzhichong/alpine-cn latest e8289dcc1d4b 2 years ago 3.98MB
[root@docker ~]# docker save daocloud.io/huangzhichong/alpine-cn:latest > docker_alpine-cn.tar.gz
[root@docker ~]# ll
total 132652
-rw-------. 1 root root 1549 Jan 10 2019 anaconda-ks.cfg
-rw-r--r--. 1 root root 4241408 Oct 29 23:39 docker_alpine-cn.tar.gz

导入镜像:docker load

[root@docker ~]# docker load -i docker_alpine-cn.tar.gz
60ab55d3379d: Loading layer [===========================================>] 4.226MB/4.226MB
78cd8c87ab42: Loading layer [===========================================>] 3.072kB/3.072kB
Loaded image: daocloud.io/huangzhichong/alpine-cn:latest

[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 7 days ago 126MB
nginx 1.16.0 ae893c58d83f 2 months ago 109MB
daocloud.io/huangzhichong/alpine-cn latest e8289dcc1d4b 2 years ago 3.98MB

给镜像打标签:docker tag

docker tag 命令:标记本地镜像,将其归入某一仓库。

语法:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

实例:

例如,Docker本地有一个 nginx 镜像:

[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 8 days ago 126MB

我们对 本地nginx镜像进行开发,开发了第一个版本,然后对该版本打标签,打完标签后会生成新的镜像:
    (也有人称之为 “硬链接”)

[root@docker ~]# docker tag nginx nginx:v1
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 8 days ago 126MB
nginx v1 540a289bab6c 8 days ago 126MB

我们继续对 本地nginx进项进行开发,开发了第二个版本,继续打标签

[root@docker ~]# docker tag nginx nginx:v2
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 8 days ago 126MB
nginx v1 540a289bab6c 8 days ago 126MB
nginx v2 540a289bab6c 8 days ago 126MB

以此类推,每开发一个版本打一个标签,如果以后想回滚版本,就可以使用指定标签的镜像来创建容器:

[root@docker ~]# docker run -itd nginx:v1
 

Docker笔记6:Docker 常见命令及镜像管理的更多相关文章

  1. 三、【Docker笔记】Docker镜像

    镜像是Docker的三大核心概念之一.Docker在运行容器之前,本地需要存有镜像,若不存在则Docker会首先尝试从默认的镜像仓库中去下载,当然我们也可以去配置自己的仓库,如此就会从我们配置的仓库中 ...

  2. 二、【Docker笔记】Docker的核心概念及安装

    Docker主要有三大核心的概念,分别为镜像(Image).容器(Container)及仓库(Repository). 一.核心概念 1.Docker镜像 ​ Docker镜像其实与虚拟机镜像很类似, ...

  3. 四、【Docker笔记】Docker容器

    容器是Docker的另一个核心概念,容器就是镜像的一个运行实例,只是它具有一个可写的文件层,而镜像是一个只读的文件. 一.创建容器 1.新建容器 我们可以使用 docker create 命令来创建一 ...

  4. 六、【Docker笔记】Docker数据管理

    前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...

  5. 003-docker命令-远程镜像仓库命令,本地镜像管理命令

    1.远程镜像仓库 docker login/logout:查看 [不常用] docker push:查看 [不常用] docker search:从Docker Hub查找镜像 语法:docker s ...

  6. 七、【Docker笔记】Docker中网络基础配置

    一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...

  7. Linux常见命令之权限管理命令

    chmod命令 chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文 ...

  8. LINUX笔记之二常用命令(权限管理命令)

    1. +增加权限:-去掉权限:=直接赋权. r(4)w(2)x(1) 重点掌握:通过数字授权,例如rxwr-xr--是754 例题:用root用户创建目录并在此目录新建文件,之后更改新文件的权限为77 ...

  9. Docker的数据管理(下)——docke镜像的创建

    Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...

随机推荐

  1. Diophantus of Alexandria(唯一分解定理)

    Diophantus of Alexandria was an Egypt mathematician living in Alexandria. He was one of the first ma ...

  2. observeParents的使用

    observeParents参数 是布尔类型  默认false 在tab切换选项中有轮播图,切换后轮播图就不播了,并且显示也出现了问题,就可以使用observeParents 用法为 <scri ...

  3. 万字长文,以代码的思想去详细讲解yolov3算法的实现原理和训练过程,Visdrone数据集实战训练

    以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ...

  4. Agumaster 增加股票表台账页面

  5. AI研讨会直播:《人工智能开发前沿》实战系列公开课第1期

    报名链接:https://www.slidestalk.com/m/276 活动背景 业务需求.数据.算法.算力等因素,决定人工智能技术走向产业落地面临各种挑战.博客园联合示说网以及产业内人工智能技术 ...

  6. Linux:正则表达式2

    基础正则表达式 ^ : 以xx开头 $ :以xx结尾 ^$ :代表空行 .   任意一个字符 \   :转义符号,让有着特殊意义的字符可被使用 * :重复0个或多个前面的字符,例如 a* 2表示a后面 ...

  7. 基于Goc的Golang代码VSCode实时染色方案

    近日,Li Yiyang 老师基于Goc做了个VS Code插件,能够直观的看到被执行到的代码,当真充满想象力: 感兴趣的同学可以去goc仓库查看详情. Goc的核心能力就在于能够帮助我们在被测程序运 ...

  8. Docker:一、开始部署第一个Asp.net应用

    工具: docker desktop :一个使用Docker的IDE工具,可以理解为SourceTree,也是使用git的一个桌面化工具: kitematic :配合desctop,用来管理本地的镜像 ...

  9. 笨办法学Python3习题19

    学习笔记记录一下 def cheese_and_crackers(cheese_count, boxes_of_crackers): print (f"You have {cheese_co ...

  10. 刷题[bestphp's revenge]

    前置知识 phpsession反序列化 CRLF注入 即:利用漏洞,注入一个CRLF(\r\n)控制用户的Cookie,或者注入两个CRLF,控制返回给客户端的主体 php内置SoapClient类利 ...