docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 7861 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 190 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK] ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK] neurodebian NeuroDebian provides neuroscience research s… 50 [OK] …
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 113a43faa138 2 weeks ago 81.2MB
假设下载 NGINX 镜像,可以运行 docker pull 命令:
1
docker pull nginx
如果检查 Docker 镜像,会看到如下内容:
1 2 3 4
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 113a43faa138 2 weeks ago 81.2MB nginx latest cd5239a0906a 2 weeks ago 109MB
如果寻找 Ubuntu 16.04 版本,可使用 16.04 标签下载特定版本:
1
docker pull ubuntu:16.04
随后,将出现两个 Ubuntu 镜像版本:
1 2 3 4 5
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 5e8b97a2a082 2 weeks ago 114MB ubuntu latest 113a43faa138 2 weeks ago 81.2MB nginx latest cd5239a0906a 2 weeks ago 109MB
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6162daed25da nginx "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7b19b6ad778 nginx "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:8888->80/tcp my_nginx 6162daed25da nginx "nginx -g 'daemon of…" 15 minutes ago Up 16 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds
请注意,新容器的名称为“my_nginx”。 处理大量容器时,可以使用命名约定,这可以更好得组织容器。 docker ps 命令仅显示正在运行的容器。如果对上述情况使用 docker info 命令:
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6162daed25da nginx "nginx -g 'daemon of…" 27 minutes ago Up 27 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7b19b6ad778 nginx "nginx -g 'daemon of…" 12 minutes ago Exited (0) About a minute ago my_nginx 6162daed25da nginx "nginx -g 'daemon of…" 27 minutes ago Up 27 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds
如果在没有 -a 选项的情况下运行 docker ps,只显示正在运行的容器。在第二种情况下,可以看到’my_nginx’容器处于退出状态。
让我们 docker start 容器:
1 2
docker start my_nginx my_nginx
检查 Docker 容器列表:
1 2 3 4
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7b19b6ad778 nginx "nginx -g 'daemon of…" 16 minutes ago Up 29 seconds 0.0.0.0:8888->80/tcp my_nginx 6162daed25da nginx "nginx -g 'daemon of…" 30 minutes ago Up 30 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds
可以看到 STATUS 显示容器’my_nginx’再次被启动。 如果由于某些问题而需重启容器,则可使用 restart 命令,这比单独停止和启动容器速度更快:
1
docker restart my_nginx
可以像进程一样终止 docker 容器,比如终止 my_nginx 容器:
1
docker kill my_nginx
再次列出 Docker 容器:
1 2 3 4
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7b19b6ad778 nginx "nginx -g 'daemon of…" 22 minutes ago Exited (137) 7 seconds ago my_nginx 6162daed25da nginx "nginx -g 'daemon of…" 36 minutes ago Up 36 minutes 0.0.0.0:8080->80/tcp hardcore_torvalds
root@a19c770b8621:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@a19c770b8621:/# pwd /
列出 Docker 容器:
1 2 3 4
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a19c770b8621 ubuntu:latest "bash" About a minute ago Up About a minute my_ubuntu 6162daed25da nginx "nginx -g 'daemon of…" About an hour ago Up About an hour 0.0.0.0:8080->80/tcp hardcore_torvalds
使用 docker exec 向容器发出命令。例如,可以直接用命令提示符在 my_ubuntu 容器上运行 ls 命令:
1 2 3
docker exec -it my_ubuntu ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
以分离模式启动容器并 attach
以上示例用附加模式启动 ubuntu 容器,我们也可在分离模式下启动:
1 2
docker run -it -d --name my_ubuntu_2 ubuntu:latest bash 75b28b7208359137b3e1dc2843387918e28b4c6c4860ef0cdeac79c205f5cbc4
验证容器是否正在运行:
1 2 3 4 5
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75b28b720835 ubuntu:latest "bash" 3 minutes ago Up 3 minutes my_ubuntu_2 a19c770b8621 ubuntu:latest "bash" 15 minutes ago Up 15 minutes my_ubuntu 6162daed25da nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp hardcore_torvalds
使用 docker attach 命令获取 docker exec bash-like 效果:
1 2
docker attach my_ubuntu_2 root@75b28b720835:/#
检查 Docker 镜像历史
Docker 社区镜像是分层创建的,可使用 Docker history 命令查看镜像创建方式。先看看有哪些镜像:
1 2 3 4 5
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 16.04 5e8b97a2a082 2 weeks ago 114MB ubuntu latest 113a43faa138 2 weeks ago 81.2MB nginx latest cd5239a0906a 2 weeks ago 109MB
查看 nginx 镜像历史:
1 2 3 4 5 6 7 8 9 10 11 12
docker history nginx IMAGE CREATED CREATED BY SIZE COMMENT cd5239a0906a 2 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B <missing> 2 weeks ago /bin/sh -c #(nop) STOPSIGNAL [SIGTERM] 0B <missing> 2 weeks ago /bin/sh -c #(nop) EXPOSE 80/tcp 0B <missing> 2 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B <missing> 2 weeks ago /bin/sh -c set -x && apt-get update && apt… 53.7MB <missing> 2 weeks ago /bin/sh -c #(nop) ENV NJS_VERSION=1.15.0.0.… 0B <missing> 2 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.15.0-… 0B <missing> 7 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B <missing> 8 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 8 weeks ago /bin/sh -c #(nop) ADD file:ec5be7eec56a74975… 55.3MB
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6162daed25da nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp hardcore_torvalds
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6162daed25da nginx "nginx -g 'daemon of…" 3 hours ago Up 3 hours 0.0.0.0:8080->80/tcp hardcore_torvalds
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75b28b720835 ubuntu:latest "bash" About an hour ago Exited (0) About an hour ago my_ubuntu_2 a19c770b8621 ubuntu:latest "bash" 2 hours ago Exited (0) About an hour ago my_ubuntu 6162daed25da nginx "nginx -g 'daemon of…" 3 hours ago Exited (0) 27 seconds ago hardcore_torvalds
从 STATUS 中,可以看到 NGINX’corecore_torvalds’容器已停止。使用 docker commit 命令创建新镜像:
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4e042d76c391 nginx_hello_world_template "nginx -g 'daemon of…" 2 minutes ago Exited (0) 8 seconds ago boring_keldysh 75b28b720835 ubuntu:latest "bash" 2 hours ago Exited (0) About an hour ago my_ubuntu_2 a19c770b8621 ubuntu:latest "bash" 2 hours ago Exited (0) About an hour ago my_ubuntu 6162daed25da nginx "nginx -g 'daemon of…" 3 hours ago Exited (0) 11 minutes ago hardcore_torvalds