docker探索-docker容器基本操作(五)

时间:2021-09-30 21:12:50

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 : -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" hours ago Up hours 0.0.0.0:->/tcp boring_hawking
25caf2714fe6 ubuntu:15.10 "/bin/bash" hours ago Exited () hours ago houtai-ubuntu
669a12e3d6a3 ubuntu:15.10 "/bin/bash" hours ago Exited () hours ago loving_shirley
1b2abcfbf999 ubuntu:15.10 "/bin/echo 'Hello wor" hours ago Exited () hours ago jolly_kirch
574b3a74c7b2 jacky/ubuntu:14.05 "/bin/bash" hours ago Up hours /tcp, /tcp distracted_meitner
6c76dd14454d 5ae9a10a7f42 "/bin/sh -c 'apt-get " hours ago Exited () hours ago condescending_leavitt
488f3af35f5e centos:7.2. "/bin/bash" hours ago Exited () hours ago drunk_poitras
41b69d7a222e centos:7.2. "/bin/bash" hours ago Exited () 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" hours ago Up hours 0.0.0.0:->/tcp boring_hawking
574b3a74c7b2 jacky/ubuntu:14.05 "/bin/bash" hours ago Up hours /tcp, /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" hours ago Up seconds 0.0.0.0:->/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" hours ago Up minutes 0.0.0.0:->/tcp boring_hawking
[root@jacky jacky]# docker port 9ea0980c3261
/tcp -> 0.0.0.0:

通过docker ps 命令可以查看到容器的端口映射,docker还提供了另一个快捷方式:docker port,使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号

10、查看容器内部运行进程

[root@jacky jacky]# docker top 9ea0980c3261
UID PID PPID C STIME TTY TIME CMD
root : ? :: nginx: master process nginx -g daemon off;
: ? :: nginx: worker process

11、查看容器运行日志信息

docker logs -f 7a38a1ad55c6

-f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出。