一、启动容器有两种方式

1.基于镜像新建一个容器并启动

1.1 在后台运行一个docker

docker run -d centos /bin/sh -c "while true;do echo 正在运行;sleep 1;done"

# -d:后台运行

# /bin/sh 指定使用centos的bash

# -c运行一段shell命令

# "while true;do echo 正在运行;sleep 1;done" 在linux后台,每秒中打印一次正在运行

docker ps    #检查容器进程

docker logs -f 容器id/名称     # 不间断打印容器的日志信息

docker 容器中使用的volume docker容器的使用过程_docker 容器中使用的volume

docker stop 容器名称            # 停止容器

docker 容器中使用的volume docker容器的使用过程_web应用_02

1.2 启动一个bash终端,允许用户进行交互

docker run --name mydocker -it centos /bin/bash

# --name 给容器定义一个名称

# -i : 让容器的标准输入保持打开

# -t:  让docker分配一个伪终端,并绑定到容器的标准输入上

# /bin/bash 指定docker容器,用shell解释器交互

docker 容器中使用的volume docker容器的使用过程_端口映射_03

当利用docker run 来创建容器时,docker在后台运行的步骤如下:

1).检查本地是否有指定的镜像,不存在就从共有仓库中下载

2).利用镜像创建并启动一个容器

3).分配一个文件系统,并在只读的镜像曾外面挂在一层可读可写

4).从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中

5).从地址池配置一个ip地址给容器

6).执行用户指定的应用程序

7).执行完毕后容器停止

1.2 将一个终止状态的容器重新启动

docker ps -a  #查询记录

docker start 容器id   #启动容器

docker exec -it 容器id /bin/bash    #进入容器交互式界面

docker 容器中使用的volume docker容器的使用过程_端口映射_04

二、运行一个web应用

用docker构建一个web应用程序

docker pull training/webapp    #载入镜像

docker 容器中使用的volume docker容器的使用过程_docker 容器中使用的volume_05

docker run -P training/webapp python app.py

# -P:将容器内部使用的网络端口映射到使用的主机上

docker 容器中使用的volume docker容器的使用过程_端口映射_06

查看web应用容器

docker 容器中使用的volume docker容器的使用过程_端口映射_07

多了端口信息,docker开放了5000端口(默认python Flask端口)映射到主机端口32679上

通过浏览器访问web应用

docker 容器中使用的volume docker容器的使用过程_端口映射_08

查看web应用程序中的app.py的内容

docker 容器中使用的volume docker容器的使用过程_docker 容器中使用的volume_09

可以通过-p参数设置不一样的端口

docker run -d -p 5000:5000 training/webapp python  app.py

docker ps 查看正在运行的容器,容器内部的5000端口映射到本地主机的5000端口上。

docker 容器中使用的volume docker容器的使用过程_web应用_10

网络端口的快捷方式

通过docker ps 命令可以查看到容器的端口映射,还可以使用docker port命令查看指定容器的某个确定端口映射到宿主机的端口号。

docker port 容器id或者容器名称来查看容器端口映射情况

docker 容器中使用的volume docker容器的使用过程_docker 容器中使用的volume_11

查看web应用程序容器的进程

docker top 命令查看容器内部运行的进程

docker 容器中使用的volume docker容器的使用过程_docker 容器中使用的volume_12

检查web应用程序

使用docker inspect 来查看docker 的底层信息,会返回一个json文件记录着docker容器的配置和状态信息

docker 容器中使用的volume docker容器的使用过程_web应用_13

停止web应用容器

docker stop 容器id或者容器名称

docker 容器中使用的volume docker容器的使用过程_docker_14

重启web应用程序

docker start 启动容器

dcoker ps -l 查询最后一次创建的容器

docker 容器中使用的volume docker容器的使用过程_web应用_15

正在运行的容器,可以通过docker restart 容器id/容器name 重启

移除web应用容器

docker rm 命令删除不需要的容器

docker 容器中使用的volume docker容器的使用过程_端口映射_16

删除容器时,容器必须是停止状态,否则会报错

docker 容器中使用的volume docker容器的使用过程_docker_17