服务器
本文主要介绍了docker镜像和容器的使用方法。 内容很清楚,感兴趣的伙伴可以学习一下。 读完之后我觉得会有用。
密勒加速器
国内有时很难将镜像从docker hub中拉出,但在这种情况下可以配置镜像加速器。国内许多云服务提供商提供国内加速器服务,包括:
网易云加速器https://hub-mirror.c.163.com
AlibabaCloud (阿里巴巴云)加速器(需要获取帐户) https://Cr.console.a liyun.com/cn-Hangzhou/mirrors
国内各大云服务公司都提供Docker镜像加速服务,建议根据运行Docker的云平台选择相应的镜像加速服务。 具体请参考官方文档。
在CentOS7系统上,请按如下方式写入/etc/docker/daemon.json : 如果文件不存在,请创建新文件。
[ root @ docker 01~] # vim/etc/docker/daemon.JSON
{
&; #039; 注册镜像& amp; #039; [
&; #039; https://hub-mirror.c.163.com&; #039;
]
}
请确保此文件符合json标准。 如果不符合标准,Docker将无法启动。
然后,重新开始服务。
系统日期-读取
系统重新开始文档器
检查加速器是否有效
执行以下命令,从结果中看到以下内容时,表示配置成功。
[root@docker01 ~]# docker info #显示系统整体的信息
………………
注册镜像:
https://hub-mirror.c.163.com/
Live Restore Enabled: false
warning:bridge-nf-call-iptablesisdisabled
warning:bridge-nf-call-ip6 tablesisdisabled
Dcoker镜像操作
描述:在Docker运行容器之前,本地对应的镜像必须存在。 如果本地不存在镜像,Docker将从镜像仓库下载镜像。
搜索镜像
[ root @ docker 01~] # dockersearchcentos
namedescriptionstarsofficialautomated
centostheofficialbuildofcentos.5934 [确定]
ansi ble/centos7- ansibleansibleoncentos 7128 [确定]
jdea the/centos-ssh OpenSSH/supervisor/epel/ius/sclre pos--…114 [确定]
con sol/centos-xfce-vnccentoscontainerwith & amp; #039; 头儿& amp; #039; VNC session…114 [确定]
centos/MySQL-57-centos7MySQL 5.7 SQL database server 74
………
从pull镜像中心下载镜像
#格式: docker pull image_name:tag,如果没有tag,则默认值为latest
[ root @ docker 01~] # dockerpullcentos:latest
latest:pullingfromlibrary/centos
8a29a15cefae: Pull complete
digest:sha 256:fe8d 824220415 eed 5477 b 63 addf 40 FB 06c 3b 049404242 b 31982106 AC 204 f 6700
status:downloadednewerimageforcentos:latest
将推送镜像推送到镜像中心
格式: docker push image_name:tag
[ root @ docker 01~~ ] # dockerpushregistry.cn-Beijing.aliyuncs.com/Google _ registry/centos:latest
说明:如有疑问请先忽略。 后面做了私藏的文章再解释。
images列出镜像
[root@docker01 ~]# docker images #或docker image ls
repositorytagimageidcreatedsize
centos latest 470671670 ca C2 months ago 237 MB
ave镜像存储在本地
#格式: docker save -o保存的文件名image_name:tag|image_id
[ root @ docker 01 docker _ test ] # docker save-o centos _ docker _ 2020 04 13.tar centos:latest
[ root @ docker 01 docker _ test ] # ll-h
总计234米
- rw----1root root 234 mapr 1316:21 centos _ docker _ 2020 04 13.tar
使用rmi删除镜像
#格式: dockerrmiimage _ name:tag|image _ id
[ root @ docker 01 docker _ test ] # docker images
repositorytagimageidcreatedsize
centos latest 470671670 ca C2 months ago 237 MB
[ root @ docker 01 docker _ test ] # docker RMI 470671670 CAC #删除镜像
[ root @ docker 01 docker _ test ] # docker images
repositorytagimageidcreatedsize
load导入镜像
#格式: docker load -i image_file
[ root @ docker 01 docker _ test ] # docker load-I centos _ docker _ 2020 04 13.tar
[ root @ docker 01 docker _ test ] # docker images
repositorytagimageidcreatedsize
centos latest 470671670 ca C2 months ago 237 MB
标签
#格式: dockertagsource _ image [:tag ] target _ image [:tag ]
[ root @ docker 01 docker _ test ] # docker images
repositorytagimageidcreatedsize
centos latest 470671670 ca C2 months ago 237 MB
[ root @ docker 01 docker _ test ] # dockertagcentos:latest centos:2020 04 13
[ root @ docker 01 docker _ test ] # docker images
repositorytagimageidcreatedsize
centos 20200413470671670 ca C2 months ago 237 MB
centos latest 470671670 ca C2 months ago 237 MB
使用-根据需要标记docker镜像。
info显示整个系统的信息
[root@docker01 ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
Server Version: 18.06.3-ce
存储驱动程序: overlay 2
备份文件系统: xfs
Supports d_type: true
Native Overlay Diff: true
记录驱动程序: JSON-file
Cgroup Driver: cgroupfs
Plugins :
Volume: local
network:bridgehostmacvlannulloverlay
log:awslogsfluentdgcplogsgelfjournaldjson-filelogentriessplunksyslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version:468 a 545 B9 edcd 5932818 eb9d e8e 72413 e 616 e 86 e
run cversion:a 592 be b5 BC 4c 4092 B1 B1 BAC 971 afed 27687340 c 5
init version: fec3683
安全选项:
seccomp
配置文件: default
kernel version:3.10.0-1062.el7.x86 _ 64
操作系统: centos Linux7( core ) ) ) ) ) ) ) ) ) )。
OSType: linux
Architecture: x86_64
CPUs: 2
总内存: 1.777 gib
Name: docker01
id:Xihu:xnwu:ii7a:yxuh:boz3: jsgg:j3p2: cu2z:5q ha:5y 64:pz4v:62di
文档root dir:/var/lib/docker
调试模式( client ):false
调试模式( server ):false
registry:https://index.docker.io/v1 /
Labels :
Experimental: false
Insecure Registries :
127.0.0.0/8
注册镜像:
https://hub-mirror.c.163.com/
Live Restore Enabled: false
warning:bridge-nf-call-iptablesisdisabled
warning:bridge-nf-call-ip6 tablesisdisabled
系统镜像卷显示
另一个需要注意的问题是,docker image ls列表中的镜像卷总数不是所有镜像的实际硬盘消耗。 由于Docker镜像是多层存储结构,可以继承和重用,因此不同的镜像使用相同的基础镜像,因此可能具有公共层次。 由于Docker使用的是Union FS,因此只需存储一个相同的层,因此实际镜像硬盘所占用的空间很可能远远小于此列表中的镜像大小总和。
使用以下命令可以快速查看镜像、容器和数据卷占用的空间。
[ root @ docker 01 docker _ test ] # dockersystemdf
类型总活动大小接收可用
Images 2 0 440.1MB 440.1MB (100% )
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
inspect显示镜像或容器的详细信息
#格式:文档inspect镜像ID|镜像名称|容器ID|容器名称
[ root @ docker 01~] # dockerinspectcentos:latest #查看镜像详细信息
[ root @ docker 01~] #查看docker inspect 67ba 647 b 0151 #容器的详细信息
Dcoker容器操作
创建运行容器
#格式: docker run [ options ] image [ command ] [ arg . ]
[ root @ docker 01~~ ] # docker run-I-t-- name centos 01 centos:latest/bin/bash
[root@f7c4da3cecad /]# #此时已进入文档容器
[root@f7c4da3cecad /]# exit #退出容器时,容器将停止【正常】
[root@docker01 ~]#
参数说明:
-i交互操作
-t分配终端
name运行的容器的名称
上次/bin/bash执行的命令
ps视图容器
[root@docker01 ~]# docker ps #查看正在运行的容器
containeridimagecommandcreatedstatusportsnames
[root@docker01 ~]#
[root@docker01 ~]# docker ps -a #显示所有容器,包括运行和停止
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 4minutesagoexited(0) 36 seconds ago centos01
开始容器
#格式:文档开始容器名称|容器ID
[root@docker01 ~]# docker ps -a
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 10minutesagoexited(0)3 seconds ago centos01
[ root @ docker 01~] # dockerstartf7C4 da 3c ecad #启动容器
f7c4da3cecad
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 10minutesagoup3secondscentos01
重新启动重新启动容器
#格式: docker restart容器名称|容器ID
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 15minutesagoup4minutescentos01
[ root @ docker 01~] #重新启动dockerrestartf7C4 da3c ecad #容器
f7c4da3cecad
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 15minutesagoup1secondcentos01
停靠集装箱
#格式: docker stop容器名称|容器ID
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 3hoursagoup4minutescentos01
[ root @ docker 01~] # dockerstopf7C4 da 3c ecad #停止容器
f7c4da3cecad
[root@docker01 ~]# docker ps -a
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 3hoursagoexited(0) 10 seconds ago centos01
删除rm容器
#格式: docker rm容器名称|容器ID
[root@docker01 ~]# docker ps -a
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 3hoursagoexited(0) 10 seconds ago centos01
[ root @ docker 01~] # docker rmf7C4 da 3c ecad #删除停止的容器
f7c4da3cecad
描述:要强制删除正在运行的容器,请使用docker rm -f容器ID。 但是,不建议强制删除容器,以免意外删除。
重命名重命名容器
#格式: docker rename CONTAINER NEW_NAME
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
67ba647b0151centos:latest&; #039; /bin/bash&; #039; aboutaminuteagoupaboutaminutecentos 01
[ root @ docker 01~] # docker rename 67ba 647 b 0151 centos 001 #重命名容器
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
67ba647b0151centos:latest&; #039; /bin/bash&; #039; 2 minutesagoupaboutaminutecentos 001
exec进入容器或在容器运行时执行命令
进入容器
[ root @ docker 01~] # docker exec-itf7c4da3cecadbash
[root@f7c4da3cecad /]#
说明:不建议用docker attach方式进入容器。
使在容器外指定的容器执行命令
没有-t选项,因为不需要分配tty终端
[ root @ docker 01~] # docker exec-if7C4 da3cecadbash-c & a MP; #039; PS-ef&; #039;
UID PID PPID C STIME TTY TIME CMD
root 1010:12 pts/000:00:00/bin/bash
路线780010:19? 00:00:00 ps -ef
复制cp文件或目录
将主机文件或目录复制到文档容器
[ root @ docker 01~] # docker exec-I 67ba 647 b 0151 bash-c & a MP; #039; ls-l/root&; #039;
总计12
- rw----1root root 2366 Jan 1321:49 anaconda-ks.CFG
- rw-r-- r--1root root 435 Jan 1321:49 anaconda-post.log
- rw----1root root 2026 Jan 1321:49 original-ks.CFG
[root@docker01 ~]#
[ root @ docker 01~~ ] # docker CP/usr/bin/telnet 67ba 647 b 0151:/root/#复制文件
[ root @ docker 01~~ ] # docker CP/root/basedoptimi 67ba 647 b 0151:/root/#复制目录
[ root @ docker 01~] # docker exec-I 67ba 647 b 0151 bash-c & a MP; #039; ls-l/root&; #039;
总112
- rw----1root root 2366 Jan 1321:49 anaconda-ks.CFG
- rw-r-- r--1root root 435 Jan 1321:49 anaconda-post.log
dwxr-xr-x2 root root 30 mar 819:59 basedoptimi
- rw----1root root 2026 Jan 1321:49 original-ks.CFG
-rwxr-xr-x1路由101776aug32017远程网络
将docker容器中的文件或目录复制到宿主机
[ root @ docker 01~] # docker CP 67 ba 647 b 0151:/root/original-ks.CFG/root/#复制文件
[ root @ docker 01~] # docker CP 67 ba 647 b 0151:/etc/root/#复制目录
查看logs容器日志
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
f7C4da3Cecadcentos:latest&; #039; /bin/bash&; #039; 3hoursagoup1secondcentos01
#获取容器日志
[ root @ docker 01~] # docker logs-f-- tail 500 f7c4da 3c ecad
………
参数说明:
-f继续打印输出
tail 500打印日志的最后500行
stats容器使用资源统计信息
可用于监视
[root@docker01 ~]# docker stats容器ID|容器名称#始终监视
[ root @ docker 01~~ ] # docker stats-- no-stream容器ID|容器名称#仅显示最初返回的结果,而不是连续监视
在top容器中运行的进程
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
67ba647b0151centos:latest&; #039; /bin/bash&; #039; 2hoursagoup2hourscentos001
#查看在容器中运行的进程信息
[ root @ docker 01~] # docker top 67ba 647 b 0151
UID PID PPID C STIME TTY TIME CMD
root 33023285021:13 pts/000:00:00/bin/bash
端口容器映射特定的端口
容器映射端口包括随机端口映射、单端口映射和多端口映射
取得镜像
[ root @ docker 01~~ ] # dockerpullregistry.cn-Beijing.aliyuncs.com/Google _ registry/nginx:1.17
[ root @ docker 01~] # dockertaged 21 b7A8 aee9nginx:1.17
[ root @ docker 01~] # docker images|grep & amp; #039; nginx&; #039;
nginx 1.17 ed 21 b7A8 aee 92 weeks ago 127 MB
registry.cn-Beijing.aliyuncs.com/Google _ registry/nginx 1.17 ed 21 b7A8 aee 92 weeks ago 127 MB
随机端口映射
[ root @ docker 01~] # docker run-d-p-- name nginx 01 nginx:1.17
e 90 C9 FAA f8e 3387920 DD 9763 BF 5c 7d F9 DD 17856673868 bb 512 CEC 78741 ff 71dc
[root@docker01 ~]# docker ps
containeridimagecommandcreatedstatusportsnames
e90c9FAAF8e3nginx:1.17&; #039; nginx-g&; #039; daemonof…&; #039; 3 secondsagoup2seconds0.0.0: 1025-80/TCP nginx 01
说明:
0.0.0.0:1025-80/tcp前为宿主机端口,后为容器端口
容器日志:
[ root @ docker 01~] # docker logs-f-- tail 500 nginx 01
浏览器访问:
映射一个指定端口
[ root @ docker 01~] # docker run-d-p81:80-- name ngin x02 nginx:1.17
0478222 f0dc 981883 f 25504164 be3af7da 49248886 CEE 7386 CCC 89 b 80 cc57 a 1
[ root @ docker 01~] # docker PS|grep & amp; #039; nginx02&; #039;
0478222f0DCnginx:1.17&; #039; nginx-g&; #039; daemonof…&; #039; 29 secondsagoup 28 seconds0.0.0: 81-80/TCP nginx 02
浏览器访问:
映射多个指定端口
[ root @ docker 01~] # docker run-d-p85:80-p445:443-- name nginx 03 nginx:1.17
586 e 52 ff8e 934 BC 827 c8 d 7753 a 532 b 9062 BD 045799 d 0658 a008 e371 E6 ECD 09 c
[ root @ docker 01~] # docker PS|grep & amp; #039; nginx03&; #039;
586e52ff8e9nginx:1.17&; #039; nginx-g&; #039; daemonof…&; #039; 12 secondsagoup 11 seconds0.0.0: 85-80/TCP,0.0.0.0:445
阅读以上内容,您是否熟悉如何使用Docker镜像和容器? 另外,如果想学习更多,欢迎使用信息频道。
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn