docker探索-docker容器基本操作(五)
1、创建一个容器并启动
1.1、docker hello word
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
输出Hello world
[root@jacky ubantu]# docker run ubuntu:15.10 /bin/echo "Hello world" Hello world
各个参数说明:
-
docker: Docker 的二进制执行文件。
-
run:与前面的 docker 组合来运行一个容器。
-
ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
-
/bin/echo "Hello world": 在启动的容器里执行的命令
1.2、创建交互式容器并启动
[root@jacky jacky]# docker run --dns 8.8.8.8 --dns 8.8.4.4 -it -P centos:7.2.1511 /bin/bash
各个参数说明:
- --dns 指定容器使用的DNS服务器,默认和宿主一致
- -P(大写P) 将容器的80端口映射到主机随机端口
1.3、创建守护式容器并启动
使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。
docker run -p 80:80 -v /data:/data -d nginx:latest
2、查看本机所有容器
[root@jacky jacky]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ea0980c3261 nginx:latest "nginx -g 'daemon off" 15 hours ago Up 15 hours 0.0.0.0:80->80/tcp boring_hawking 25caf2714fe6 ubuntu:15.10 "/bin/bash" 16 hours ago Exited (0) 16 hours ago houtai-ubuntu 669a12e3d6a3 ubuntu:15.10 "/bin/bash" 16 hours ago Exited (0) 16 hours ago loving_shirley 1b2abcfbf999 ubuntu:15.10 "/bin/echo 'Hello wor" 16 hours ago Exited (0) 16 hours ago jolly_kirch 574b3a74c7b2 jacky/ubuntu:14.05 "/bin/bash" 17 hours ago Up 16 hours 22/tcp, 80/tcp distracted_meitner 6c76dd14454d 5ae9a10a7f42 "/bin/sh -c 'apt-get " 17 hours ago Exited (100) 17 hours ago condescending_leavitt 488f3af35f5e centos:7.2.1511 "/bin/bash" 18 hours ago Exited (0) 17 hours ago drunk_poitras 41b69d7a222e centos:7.2.1511 "/bin/bash" 18 hours ago Exited (130) 18 hours ago thirsty_feynman
3、查看正在运行的容器
[root@jacky jacky]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ea0980c3261 nginx:latest "nginx -g 'daemon off" 15 hours ago Up 15 hours 0.0.0.0:80->80/tcp boring_hawking 574b3a74c7b2 jacky/ubuntu:14.05 "/bin/bash" 17 hours ago Up 16 hours 22/tcp, 80/tcp distracted_meitner
4、停止正在运行的容器
[root@jacky jacky]# docker stop 9ea0980c3261
9ea0980c3261表示容器Id
5、运行已经创建好的容器
[root@jacky jacky]# docker start 9ea0980c3261 9ea0980c3261 [root@jacky jacky]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ea0980c3261 nginx:latest "nginx -g 'daemon off" 15 hours ago Up 37 seconds 0.0.0.0:80->80/tcp boring_hawking [root@jacky jacky]#
6、删除容器
[root@jacky jacky]# docker rm 41b69d7a222e
41b69d7a222e
7、查看正在运行的容器
[root@jacky jacky]# docker inspect 488f3af35f5e
说明:如果容器是centos、utuntu等等操作系统容器,是可以看到容器的Ip地址和dns信息
8、进入到容器中
[root@jacky jacky]# docker attach 488f3af35f5e
[root@488f3af35f5e /]#
9、查看容器的端口映射
[root@jacky jacky]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ea0980c3261 nginx:latest "nginx -g 'daemon off" 16 hours ago Up 11 minutes 0.0.0.0:80->80/tcp boring_hawking [root@jacky jacky]# docker port 9ea0980c3261 80/tcp -> 0.0.0.0:80
通过docker ps 命令可以查看到容器的端口映射,docker还提供了另一个快捷方式:docker port,使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号
10、查看容器内部运行进程
[root@jacky jacky]# docker top 9ea0980c3261 UID PID PPID C STIME TTY TIME CMD root 82106 82092 0 10:11 ? 00:00:00 nginx: master process nginx -g daemon off; 101 82132 82106 0 10:11 ? 00:00:00 nginx: worker process
11、查看容器运行日志信息
docker logs -f 7a38a1ad55c6
-f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出。