慢慢练,碎碎念
一、确保Docker以及就绪
[root@localhost harbor]# docker info
Containers: 10
Running: 10
Paused: 0
Stopped: 0
Images: 33
Server Version: 18.09.6
......
查看启用的网络插件
[root@localhost harbor]# curl http://127.0.0.1:2375/info 2> /dev/null | jq .Plugins.Network
[
"bridge",
"host",
"macvlan",
"null",
"overlay"
]
二、创建交互式容器
关键参数: -it
[root@localhost harbor]# docker run -it ubuntu /bin/bash
root@1b0d5952d724:/#
使用第一个容器
root@1b0d5952d724:/# hostname
1b0d5952d724
root@1b0d5952d724:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
132: eth0@if133: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
root@1b0d5952d724:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 18496 1996 pts/0 Ss 03:30 0:00 /bin/bash
root 319 0.0 0.1 34388 1460 pts/0 R+ 03:31 0:00 ps aux
宿主机上看容器
使用ctrl+p,ctrl+q退出容器,这样退出不会导致容器停止,暂时先不要想为什么。
docker top 1b0d5952d724
可以看到容器里正在运行的进程,进程号是112401,但在容器内部查看,进程号是1。看看cgroup和namespace的配置
[root@localhost harbor]# cat /proc/112401/cgroup
11:blkio:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
10:cpuacct,cpu:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
9:devices:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
8:pids:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
7:cpuset:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
6:perf_event:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
5:hugetlb:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
4:freezer:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
3:net_prio,net_cls:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
2:memory:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
1:name=systemd:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
[root@localhost ~]# ls -l /proc/112401/ns/
总用量 0
lrwxrwxrwx. 1 root root 0 6月 29 11:49 ipc -> ipc:[4026533171]
lrwxrwxrwx. 1 root root 0 6月 29 11:49 mnt -> mnt:[4026533169]
lrwxrwxrwx. 1 root root 0 6月 29 11:30 net -> net:[4026533174]
lrwxrwxrwx. 1 root root 0 6月 29 11:49 pid -> pid:[4026533172]
lrwxrwxrwx. 1 root root 0 6月 29 11:49 user -> user:[4026531837]
lrwxrwxrwx. 1 root root 0 6月 29 11:49 uts -> uts:[4026533170]
二、创建守护式容器
关键参数: -d
[root@localhost ~]# docker run -itd -P httpbin
dc551548f6116f7fd5b315c8a954c6f715dd9b66ac71dc64395c07e7ccb60a05
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc551548f611 httpbin "gunicorn -b 0.0.0.0…" 3 seconds ago Up 3 seconds 0.0.0.0:32771->80/tcp peaceful_joliot
[root@localhost ~]# curl http://127.0.0.1:32771/anything
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Host": "127.0.0.1:32771",
"User-Agent": "curl/7.29.0"
},
"json": null,
"method": "GET",
"origin": "172.17.0.1",
"url": "http://127.0.0.1:32771/anything"
}
在容器内部运行进程
[root@localhost ~]# docker exec dc551548f611 date
Sat Jun 29 06:04:24 UTC 2019
[root@localhost ~]# docker exec dc551548f611 hostname
dc551548f611
停止守护式容器
# 发送SIGTERM信号
[root@localhost ~]# docker stop dc551548f611
# 发送SIGKILL信号
[root@localhost ~]# docker kill dc551548f611
深入容器
[root@localhost ~]# docker inspect --format '{{ .State.Running}}' dc551548f611
true
[root@localhost ~]# docker inspect --format '{{ .Image}}' dc551548f611
sha256:305d6a750a4ee5d91da03ca1e26f94aa5044cc5c7b0cd24ac79ca53bb9539a39
删除容器
[root@localhost ~]# docker rm dc551548f611
Error response from daemon: You cannot remove a running container......
[root@localhost ~]# docker rm -f dc551548f611
dc551548f611
[root@localhost ~]# docker rm -f `docker ps -aq`
b21b36b78fb0
c67cf83e002b
4b291ac42e5e
1b0d5952d724
183b9371b908
91427f4f49fa
3ad3a55e612c
容器命名
三种方式,短格式只要可以唯一确认一个容器即可。
- 长格式
b11607e88fe79e93b93ad95550fcad38e41aec7bb34d3eb640a6bd2ee73e1859 - 短格式
b11607e88 - 文本
nginx-web
Docker统计信息
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
38a9fde684a6 nginx 0.00% 1.496MiB / 972.6MiB 0.15% 656B / 0B 5.02MB / 0B 2
83d52f188e7a harbor-jobservice 0.09% 6.246MiB / 972.6MiB 0.64% 69kB / 810kB 36.1MB / 0B 8
4c752b0054f1 harbor-portal 0.00% 1.395MiB / 972.6MiB 0.14% 3.69kB / 7.31kB 3.11MB / 0B 2
9044544afa43 harbor-core 0.00% 8.539MiB / 972.6MiB 0.88% 48.5kB / 37.2kB 46.9MB / 0B 8
61419c0a43ae registry 0.00% 6.539MiB / 972.6MiB 0.67% 8.74kB / 10.4kB 33.3MB / 0B 7
db25076d56ad harbor-db 0.06% 5.824MiB / 972.6MiB 0.60% 7.59kB / 12.8kB 25.4MB / 256kB 10
8df23e5f7cf4 redis 0.27% 1.758MiB / 972.6MiB 0.18% 810kB / 65.8kB 6.23MB / 0B 5
f56e5de493dc registryctl 0.00% 1.539MiB / 972.6MiB 0.16% 6.7kB / 4.41kB 9.68MB / 0B 5
a38569a80146 harbor-log 2.97% 1.949MiB / 972.6MiB 0.20% 36.7kB / 5.87kB 4.68MB / 16.4kB 11
ce3c7d3d3633 mystifying_brahmagupta 0.00% 404KiB / 972.6MiB 0.04% 656B / 0B 188kB / 0B 1
网友评论