环境:CentOS7
- 查看镜像
[root@Node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
- 搜索镜像(centos7)
[root@Node1 docker]# docker search centos7
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ansible/centos7-ansible Ansible on Centos7 134 [OK]
paigeeworld/centos7 Centos7 with apache, iperf3, nmap, ssh 6
flyceek/centos7-jdk centos7-jdk 5 [OK]
ryanj/centos7-s2i-nodejs STOP RUNNING YOUR APP BUILDS AS ROOT!! Use t… 5
bucharestgold/centos7-s2i-nodejs OpenShift S2I builder images for Node.js app… 4
prairielearn/centos7-python 3
nodeshift/centos7-s2i-web-app OpenShift S2I builder images for Modern Web … 3
ovirtguestagent/centos7-atomic The oVirt Guest Agent for Centos 7 Atomic Ho… 2
solans/centos7-elog centos7 elog 1
lamho/centos7 1
myheritage/centos7-git-java CentOs based docker image for Jenkins slave 1 [OK]
sglim2/centos7 centos7 with gcc/g++/make/git 1 [OK]
nodeshift/centos7-s2i-nodejs OpenShift S2I builder images for Node.js app… 1
uhinfra/centos7-python3.6 This is DEPRECATED. Use uhinfra/centos7-pyth… 1
bhaisaab/centos7-cloudstack-slave Docker image for building Apache CloudStack … 1
mimacom/centos7-java Docker image based on centos7 with java 0 [OK]
martinrw/centos7-icinga Basic centos7 image with icinga2, used for t… 0
chicrock/centos7-php7-node9 centos7 + php71 + node9 0 [OK]
couchbase/centos7-systemd centos7-systemd images with additional debug… 0 [OK]
chekanov/centos7hepsim Software for HepSim repository based on Cent… 0
fortinj66/centos7-s2i-nodejs based off of ryanj/centos7-s2i-nodejs. Bigg… 0
caio2k/centos7 centos7 with supervisord and vagrant user 0 [OK]
0702/centos7 A centos7 with usual utils 0 [OK]
puzzle/centos7-ruby-25-openssl official redhat ruby 2.5 image PLUS openssl 0 [OK]
rmtm/centos7 CentOS7 Baseline for RMTM 0
PS:
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
- 拉取镜像(centos)
[root@Node1 docker]# docker pull tutum/centos
Using default tag: latest
latest: Pulling from tutum/centos
Image docker.io/tutum/centos:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete
196355c4b639: Pull complete
edd0a8ebcd9d: Pull complete
8ba44ed17115: Pull complete
69f7e70c0063: Pull complete
54abd94c9217: Pull complete
Digest: sha256:b4de18abfef698f6ae3a4921d6f58edef8fc770c6ee5da7636fa4ea51ab545c5
Status: Downloaded newer image for tutum/centos:latest
docker.io/tutum/centos:latest
[root@Node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tutum/centos latest 99a633ad346f 5 years ago 297MB
- 查看镜像信息
[root@Node1 ~]# docker inspect tutum/centos
[
{
"Id": "sha256:99a633ad346ff9debae2e18ef28e36da72c4535d936500e497cd34377173d4b6",
"RepoTags": [
"tutum/centos:latest"
],
"RepoDigests": [
"tutum/centos@sha256:b4de18abfef698f6ae3a4921d6f58edef8fc770c6ee5da7636fa4ea51ab545c5"
],
"Parent": "",
"Comment": "",
"Created": "2016-03-17T15:58:48.755229612Z",
"Container": "09354ae063c58c0de57dbd8ba524960ad6928c199cb4ec75d6c8658a5d3c4d11",
"ContainerConfig": {
"Hostname": "0bc4c5093a7b",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"22/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"AUTHORIZED_KEYS=**None**"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) CMD [\"/run.sh\"]"
],
"Image": "75778ff9500e6a866ada5af4c0f0f4e8d0853a2707d6e1ba93639a56a5299ce4",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"build-date": "2016-03-04",
"license": "GPLv2",
"name": "CentOS Base Image",
"vendor": "CentOS"
}
},
"DockerVersion": "1.9.1",
"Author": "Feng Honglin <hfeng@tutum.co>",
"Config": {
"Hostname": "0bc4c5093a7b",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"22/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"AUTHORIZED_KEYS=**None**"
],
"Cmd": [
"/run.sh"
],
"Image": "75778ff9500e6a866ada5af4c0f0f4e8d0853a2707d6e1ba93639a56a5299ce4",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"build-date": "2016-03-04",
"license": "GPLv2",
"name": "CentOS Base Image",
"vendor": "CentOS"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 297355158,
"VirtualSize": 297355158,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5be04ed311a9038acd931b9101f58c8cac7051a1f8596c447cf1248752ec9f7e/diff:/var/lib/docker/overlay2/085569f7382dcf56b025dfa133bc99902753f267ebc0c0061663039f9e13d3c3/diff:/var/lib/docker/overlay2/e02e1a389ea8c6961c3c40da69ac09bbe6c360250c122d37656e9544f81e3fdf/diff:/var/lib/docker/overlay2/b754bfbaf5ce8caedda9ab99bdee03770df50a4384b21d68b2ce5195e66fdcd8/diff:/var/lib/docker/overlay2/0efeb547ac388cd528201ca397e725ba7196bdb94b5d954b1e473d2482c7f411/diff:/var/lib/docker/overlay2/f70345cada5d2b0bed91603267e916d415fba745c4455a52b73d2fdd74922e49/diff:/var/lib/docker/overlay2/6fac84f4d83678ab2bb2951f02b2efaf588664e1a2b4c51560f2a30aa87106aa/diff:/var/lib/docker/overlay2/59463efa9de8ddd45f74ec7dcf51a4df29435c0e50a08563b109f8ea2d20fabf/diff:/var/lib/docker/overlay2/526fccb853d8fb98f5964693bff1530364ac589d5dbf6b1195575379263aaaaf/diff:/var/lib/docker/overlay2/6c6e68298178a37eb5e875e4eef003de495013647644f2b3eac70b25a60fcf42/diff:/var/lib/docker/overlay2/b8fa9da8b98d178b502b41fc934bafaae6ed85368aac3491700a0f5f497b58a4/diff",
"MergedDir": "/var/lib/docker/overlay2/e071ae83e60e8c7e0a9e93c4dcd155771000881709a4047832c0a1642007c4ef/merged",
"UpperDir": "/var/lib/docker/overlay2/e071ae83e60e8c7e0a9e93c4dcd155771000881709a4047832c0a1642007c4ef/diff",
"WorkDir": "/var/lib/docker/overlay2/e071ae83e60e8c7e0a9e93c4dcd155771000881709a4047832c0a1642007c4ef/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:a734b0ff4ca6f104ccaa5c51230935de4b5f3fce6b1a34db31e3a59ce36a06d3",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:aa2141fd17764b6f81792fff016d1a9a3d4ee36bfdd959735c7447be95e0d784",
"sha256:5cc88729097cabec6c6611e4ed581da73c3e7cf754df56de54d43dafb2fa8d83",
"sha256:2baee2b1ff775a9e14de92179b8ea5cb76651588d107b9c2aae3cff2da926743",
"sha256:d3f4d82f6788f30e38574e83a8d89a0cf79b8651494da543cc01849556fc8a55",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
- 构建镜像
命令:docker commit 容器ID(名称) 新镜像名字
[root@Node1 ~]# docker commit centos3 image3
sha256:17b4e02de848e63578021c6a14c9296e5e22b2fb835184fc3d341eb1e2708185
[root@Node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
image3 latest 17b4e02de848 11 seconds ago 297MB
tutum/centos latest 99a633ad346f 5 years ago 297MB
- 设置镜像标签
命令:docker tag 源镜像名称(版本号) 目标镜像名称(版本号)
[root@Node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tutum/centos latest 99a633ad346f 5 years ago 297MB
[root@Node1 ~]# docker tag tutum/centos centos:v1
[root@Node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos v1 99a633ad346f 5 years ago 297MB
tutum/centos latest 99a633ad346f 5 years ago 297MB
- 删除镜像
[root@Node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tutum/centos latest 99a633ad346f 5 years ago 297MB
[root@Node1 docker]# docker rmi 99a633ad346f
Untagged: tutum/centos:latest
Untagged: tutum/centos@sha256:b4de18abfef698f6ae3a4921d6f58edef8fc770c6ee5da7636fa4ea51ab545c5
Deleted: sha256:99a633ad346ff9debae2e18ef28e36da72c4535d936500e497cd34377173d4b6
Deleted: sha256:e72d160abbd5585d403996036763c88e9624c70d9d80d6fb0e1ccb2c49b8a26d
Deleted: sha256:8f201733668a3ce8ce77a0dc8b2d7249cdc70b1022a7fc78650527a6f3ec09b6
Deleted: sha256:8fdcefb6d553194a6881387055c1d4110bc385d3dbf4d51b0aa07f1251e877ef
Deleted: sha256:8f98c28a55c2e54cf8b8815d843cbfaf1495dd0bf601774f27da1cbe80183225
Deleted: sha256:6163e9854471a9b6c817b9514d6b8d1cf7be7684fa0c52d76d42188e28785859
Deleted: sha256:85946201865d0456e3d2db4df8699ecc017f2a8df599a1c0b241d30e8f942ed6
Deleted: sha256:3b6d6efff38bc7552b4e42d78a142460dd122efe3f86a921298e82d60f770c85
Deleted: sha256:28508c96f9bffc44568bdcf1d0cd20a0357a106a18440302ba67ee4c68a3ccad
Deleted: sha256:33b3813290610f3880214f35c32d2175adfcc75500cae48dfdbcbcf31928a1ac
Deleted: sha256:ce3c560f1cfc18c6febc0a8ed4f8330d32df64e52fa0b34b82d42ad35406ac39
Deleted: sha256:cf032be00d9aedaf94363af683f83fda44140490759c1c048584dc9b3dd1f34e
Deleted: sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef
[root@Node1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
PS:docker rmi docker images -q(删除所有镜像)
- 查看正在运行的容器
[root@Node1 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 查看所有停止的容器
[root@Node1 docker]# docker ps -f status=exited
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 创建容器(需要先拉取镜像)
命令:docker run -it --name=容器名称 镜像名称:标签 /bin/bash
[root@Node1 docker]# docker run -it --name=centos1 tutum/centos /bin/bash
(交互式:推出即退出)
[root@45f0876be2b3 /]# ps
PID TTY TIME CMD
1 pts/0 00:00:00 bash
16 pts/0 00:00:00 ps
[root@45f0876be2b3 /]# exit
exit
命令:docker run -di --name=容器名称 镜像名称:标签(创建)
命令:docker exec -it 容器名称 (或者容器ID) /bin/bash(登录)
[root@Node1 docker]# docker run -di --name=centos2 tutum/centos
(守护式:需登录)
dd8f93f14ea3faa883f8218384d77291e6515dd79ee372b8b4e754c5554bd844
[root@Node1 docker]# docker exec -it centos2 /bin/bash
(登录)
[root@dd8f93f14ea3 /]# ps
PID TTY TIME CMD
16 pts/0 00:00:00 bash
30 pts/0 00:00:00 ps
[root@dd8f93f14ea3 /]# exit
exit
PS:
相关参数:
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
–name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
- 停止容器
[root@Node1 docker]# docker stop centos2
centos2
- 启动容器
[root@Node1 docker]# docker start centos2
centos2
- 拷贝
从容器拷贝到本地(例子chen文件已经存于centos容器/目录下)
docker cp 容器名称:容器目录 需要拷贝的文件或目录
[root@Node1 ~]# docker cp centos2:/chen /
[root@Node1 ~]# cd /
[root@Node1 /]# ll
total 24
lrwxrwxrwx. 1 root root 7 Sep 2 12:39 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Sep 6 15:28 boot
-rw-r--r--. 1 root root 9 Sep 6 15:36 chen
从本地拷贝到容器(例子chen文件已经存于本地/目录下)
docker cp 需要拷贝的文件或目录 容器名称:容器目录
[root@Node1 /]# docker cp /chen centos2:/chen2
[root@Node1 /]# docker exec -it centos2 /bin/bash
[root@dd8f93f14ea3 /]# ll
total 36
-rw-r--r--. 1 root root 18298 Mar 4 2016 anaconda-post.log
lrwxrwxrwx. 1 root root 7 Mar 4 2016 bin -> usr/bin
-rw-r--r--. 1 root root 9 Sep 6 07:36 chen
-rw-r--r--. 1 root root 9 Sep 6 07:36 chen2
- 目录挂载(宿主机的目录改变时,被挂载的容器目录也会同步更改) 已有/data在宿主机
[root@Node1 /]# docker run -di -v /data:/data --name=centos3 tutum/centos
2edae6f9e00c7494aea95e368d918897d7a9d0cc3a8f81157f1d70bbeed720f8
[root@Node1 /]# docker exec -it centos3 /bin/bash
[root@2edae6f9e00c /]# cd /data
[root@2edae6f9e00c data]# ll
total 0
[root@2edae6f9e00c data]# exit
exit
[root@Node1 /]# cd data
[root@Node1 data]# ll
total 0
[root@Node1 data]# mkdir chen
[root@Node1 data]# vi shu
[root@Node1 data]# cat shu
new
[root@Node1 data]# ll
total 0
drwxr-xr-x. 2 root root 6 Sep 6 15:52 chen
-rw-r--r--. 1 root root 4 Sep 6 07:52 shu
[root@Node1 data]# docker exec -it centos3 /bin/bash
[root@2edae6f9e00c /]# cd /data
[root@2edae6f9e00c data]# ll
total 4
drwxr-xr-x. 2 root root 6 Sep 6 07:52 chen
-rw-r--r--. 1 root root 4 Sep 6 07:52 shu
[root@2edae6f9e00c data]# cat shu
new
- 查看容器信息
[root@Node1 data]# docker inspect centos3
- 查看ip
[root@Node1 data]# docker inspect --format='{{.NetworkSettings.IPAddress}}' centos3
172.17.0.3
- 挂起容器
[root@Node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45f0876be2b3 tutum/centos "/bin/bash" 5 days ago Up 45 seconds 22/tcp centos1
[root@Node1 ~]# docker pause 45f0
#挂载
45f0
[root@Node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45f0876be2b3 tutum/centos "/bin/bash" 5 days ago Up 57 seconds (Paused) 22/tcp centos1
[root@Node1 ~]# docker unpause 45f0
#取消挂载
45f0
[root@Node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45f0876be2b3 tutum/centos "/bin/bash" 5 days ago Up About a minute 22/tcp centos1
[root@Node1 ~]#
- 删除容器
[root@Node1 data]# docker stop centos2
centos2
[root@Node1 data]# docker rm centos2
centos2
[root@Node1 data]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2edae6f9e00c tutum/centos "/run.sh" 46 minutes ago Up 45 minutes 22/tcp centos3
45f0876be2b3 tutum/centos "/bin/bash" 4 days ago Exited (0) 4 days ago centos1
本文详细介绍了Docker在CentOS7环境下进行镜像和容器的操作,包括查看本地镜像、搜索Docker Hub上的镜像、拉取镜像、查看镜像详细信息、构建新镜像、设置镜像标签、删除镜像、管理容器(启动、停止、拷贝文件、目录挂载等)。此外,还涉及了容器的暂停、恢复以及查看容器IP地址等操作。
1310

被折叠的 条评论
为什么被折叠?



