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 一样来输出容器内部的标准输出。

原文地址:https://www.cnblogs.com/520playboy/p/7845644.html