Docker笔记6:Docker 常见命令及镜像管理
目 录
一、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 常见命令及镜像管理的更多相关文章
- 三、【Docker笔记】Docker镜像
镜像是Docker的三大核心概念之一.Docker在运行容器之前,本地需要存有镜像,若不存在则Docker会首先尝试从默认的镜像仓库中去下载,当然我们也可以去配置自己的仓库,如此就会从我们配置的仓库中 ...
- 二、【Docker笔记】Docker的核心概念及安装
Docker主要有三大核心的概念,分别为镜像(Image).容器(Container)及仓库(Repository). 一.核心概念 1.Docker镜像 Docker镜像其实与虚拟机镜像很类似, ...
- 四、【Docker笔记】Docker容器
容器是Docker的另一个核心概念,容器就是镜像的一个运行实例,只是它具有一个可写的文件层,而镜像是一个只读的文件. 一.创建容器 1.新建容器 我们可以使用 docker create 命令来创建一 ...
- 六、【Docker笔记】Docker数据管理
前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...
- 003-docker命令-远程镜像仓库命令,本地镜像管理命令
1.远程镜像仓库 docker login/logout:查看 [不常用] docker push:查看 [不常用] docker search:从Docker Hub查找镜像 语法:docker s ...
- 七、【Docker笔记】Docker中网络基础配置
一个系统一般都包含多个服务组件,这些大量的服务组件不可能放在同一个容器中,这就需要多个容器之间可以互相通信.Docker提供了两种方式来实现网络服务:映射容器端口到宿主主机.容器互联机制. 一.端口映 ...
- Linux常见命令之权限管理命令
chmod命令 chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文 ...
- LINUX笔记之二常用命令(权限管理命令)
1. +增加权限:-去掉权限:=直接赋权. r(4)w(2)x(1) 重点掌握:通过数字授权,例如rxwr-xr--是754 例题:用root用户创建目录并在此目录新建文件,之后更改新文件的权限为77 ...
- Docker的数据管理(下)——docke镜像的创建
Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...
随机推荐
- 为什么一个还没毕业的大学生能够把 IO 讲的这么好?
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 N ...
- indexOf原理,Java,javascript,python实现
简介 最近做项目的时候,发现无论是前端还是后端,indexOf出现的概率都非常频繁,今天我们来看下他的实现原理吧! indexOf的含义:给定一个字符串去匹配另一个字符串的下标,如果匹配到,返回下 ...
- 让mvn打包时跳过Junit测试
原来在使用命令 “mvn clean package” 发生了测试报错,说是几个testcase出现问题了. 另一方催jar得紧,于是用 命令 “mvn package -DskipTests”,只让 ...
- 用笛卡尔积来创建一千六百万大表 整体19分钟 大表建成两分钟 设置id13分钟
昨天拙文中讲述了用自增方式创建一千六百万大表的方案,这回讨论的是用笛卡儿积,实践证明这种方案更快. 2020年3月15日08点58分实验开始 创建仅有四千数据的tb_4thousand1表: SQL& ...
- leetcode刷题-57插入区间
题目 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入:intervals = ...
- bind,call,apply模拟实现
首先,三者第一个参数都为this指向 区别 bind返回的是一个函数体 call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组 实现 bind 简单实现 ...
- git仓库下拉和上传
git仓库比较方便,可以实现白天在公司写的代码,下班之前上传到git仓库,晚上在另一台电脑上直接下拉下来,其实感觉和开发用的svn差不多 在另一篇博客里面写到,需要先在git里面新增好仓库和成员之后, ...
- selenium中Xpath标签定位和cssSelectors定位(优先用cssSelectors)
二者的区别:xpath 支持角标定位,cssselector不支持 1.XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. xpath支持属性定位,无论是默认属性还是自定 ...
- Mysql 多表连查 xml写法 非注解形式
1.xml写法 <!-- 联查用户users表 --> <resultMap type="nanh.entity.Tasks" id="selectTa ...
- stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置;分析其原因并赋予解决办法
stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置:分析其原因并赋予解决办法 1.于上图描述了案例中当前组网环境的各交换机位置与stp状态情况 : ...