一.容器的基本操作

1. 启动容器

docker run IMAGE [COMMAND] [ARG...]

run 在新容器中执行命令

eg: docker run ubuntu echo 'Hello World'
输出内容的同时,启动的容器已经停止,这是一个实行单次命令的容器
 

2. 启动交互式容器

docker run -i -t  IMAGE /bin/bash

-i --interactive=true|false 默认是false

-t --tty=true|false 默认是false
eg:
docker run -i -t ubuntu /bin/bash
ps -ef
exit(退出)

3.查看容器

docker ps [-a][-l] 默认显示正在运行中的容器

-a 列出所有的容器

-l 列出最新创建的容器
$ docker inspect [容器id/容器Name]

4.自定义容器名

docker run --name=自定义名 -i -t IMAGE /bin/bash

eg: docker run --name=container01 -i -t ubuntu /bin/bash

 

5.重新启动停止的容器

docker start [-i] 容器名(-i已交互的方式)

eg: docker start -i container01

 

6.删除停止的容器

docker rm 容器名/id (只能删除停止的容器)

二.守护式容器

1.以守护形式运行容器

什么是守护式容器? 长期运行的容器,没有交互式的会话,适合应用程序运行
docker run -i -t IMAGE /bin/bash
Ctrl+P Ctrl+Q (后台运行)
docker ps 可以查看到正在运行的容器

2.附加到运行中的容器

docker attach 容器名/id

3.启动守护式容器

docker run -d 镜像名 [COMMAND][ARG...]

eg: $ docker run --name dc1 -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"

(使用shell脚本,当任务执行完,守护式容器依旧会停止)
 

4. 查看容器日志

docker logs [-f] [-t] [--tail] 容器名

-f --follows=true|false 默认为false (一直跟踪日志的变化,并返回结果)

-t --timestamps=true}false 默认为false (在返回的结果上加上时间戳)
--tail="all" (返回的结尾处多少数量的日志,不指定则返回所有的日志)
eg:
docker logs -tf --tail 10 dc1
docker logs -tf --tail 0 dc1 (tail 0 只显示最新的日志)
 

5.查看容器内进程

docker top 容器名

6.在运行中的容器内启动新进程

docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]    (与run命令相似)

7.停止守护式容器

docker stop 容器名 (会等待容器的停止)
docker kill 容器名 (直接停止容器)

8.使用Docker帮助文件

man docker-run
man docker-logs
man docker-top
man docker-exec
...

三.在容器中部署静态站点

1.设置容器的端口映射

run [P] [p]
-P, --publish-all=true|false 默认为false 为容器暴露的所有端口进行映射
eg: docker run -P -i -t ubuntu /bin/bash
 
-p, --publish=[] 能够制定映射容器的哪些端口
  1. containerPort 只制定容器的端口,宿主机的端口随机映射
eg: docker run -p 80 -i -t ubuntu /bin/bash
  1. hostPort:containerPort 同时制定宿主机端口和容器端口,一一对应
eg: docker run -p 8080:80 -i -t ubuntu /bin/bash
  1. ip::containerPort
eg: docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
  1. ip:hostPort:containerPort
eg: docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
 

2.Nginx部署流程

  1. 创建映射80端口的交互式容器
  2. 安装Nginx
  3. 安装文本编辑器vim
  4. 创建静态页面
  5. 修改Nginx配置文件
  6. 运行Nginx
  7. 验证网站访问
docker run -p  --name web -i -t ubuntu /bin/bash
apt-get install -y nginx
apt-get install -y vim
mkdir -p /var/www/html
cd /var/www/html
vim index.html
<html>
<head>
    <title>Nginx in docker</title>
</head>
<body>
    <h1>Hello, I'm website in docker!</h1>
</body>
</html>
whereis nginx
vim /etc/nginx/sites-enabled/default
修改root 的值为静态网站根目录(/var/www/html)
cd / 返回根目录
nginx 运行nginx
ps -ef 查看nginx进程

Ctrl+P Ctrl+Q 退出

docker ps 查看容器映射的端口
docker port web 查看容器端口映射情况
docker top web 查看容器中进程运行的情况
 
  1. 通过宿主机的ip地址查看
curl http://127.0.0.1:*** 查看网站返回内容
  1. 通过容器的ip地址查看
docker inspect web 获取容器的ip地址
curl http://容器ip
 
docker stop web 重启容器
docker start web
docker exec web nginx
docker inspect web
停止一个容器并重新启动时,原先的ip地址和映射的端口也不一样

Docker基本命令与使用 —— Docker容器(一)的更多相关文章

  1. Docker基本命令与使用 —— Docker容器的网络连接(四)

    一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...

  2. Docker基本命令与使用 —— Docker镜像与仓库(二)

    一.查看和删除镜像 1.Docker Image 镜像 容器的基石 层叠的只读文件系统 联合加载(union mount) (存储位置 /var/lib/docker) docker info 2.列 ...

  3. Docker 基本命令和使用

    Docker 基本命令 systemctl start docker : 启动 Docker systemctl stop docker : 停止 Docker systemctl restart d ...

  4. 15个Docker基本命令及用法

    Docker入门教程:15个Docker基本命令及用法   本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的. AD:51CTO 网+ 第十二期沙龙:大话数据 ...

  5. Docker 入门 第二部分: 容器

    目录 Docker 入门 第二部分: 容器 先决条件 介绍 你的新开发环境 使用 Dockerfile 定义一个容器 Dockerfile 应用本身 requirements.txt app.py 构 ...

  6. 七、docker基本命令

    Docker 基本命令 docker的基本命令 docker version :查看docker的版本号,包括客户端.服务端.依赖的Go等 [root@centos7 ~]# docker versi ...

  7. docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述   docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...

  8. docker进入后台运行的容器

    转载请注明出处   我们运行docker容器的时候,使用了-d参数,把容器在后台运行后. 这个时候,我们使用docker ps命令,我们就可以知道哪些程序在后台运行.   我们要怎么进入到docker ...

  9. 理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

随机推荐

  1. 精神状态: Confused

    阿里和网易都已开放简历投递入口,本以为招聘季9月才开始的我,着实被震惊到了. 我还没准备好呢,远没有准备好. 这次日志,主要是想写三点.实习经历.接下来的计划.最后,自已在未来应该维持的心态. 关于实 ...

  2. HTML开发之(块级标签,行内标签,行内块标签)

    显示模式的特性: 主要分为两大类: 块级元素:独占一行,对宽高的属性值生效:如果不给宽度,块级元素就默认为浏览器的宽度,即就是100%宽: 行内元素:可以多个标签存在一行,对宽高属性值不生效,完全靠内 ...

  3. underscore.js定义模板遇到问题:Uncaught TypeError: Cannot read property 'replace' of undefined

    代码正确缩进位置如下, extend "layout" block 'content',-> div ->'nihao' script id:"Invoice ...

  4. NFS 常见报错

    问题:客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主属组都为nobody解决方法:这种情况会出现在 centos6 或 NFS 4版本中,只要在挂载的时候加上 -o nfsve ...

  5. Linux eject 命令

    eject命令允许在软件控制下弹出可移动媒体(通常是CD-ROM .软盘 .USB等) [root@localhost ~]# eject cdrom //弹出名字为cdrom的设备或者挂载点 [ro ...

  6. 编译Android 必须安装的库

    要安装的库: 正在卸载 build-essential ...正在卸载 g++-multilib ...正在卸载 g++ ...正在卸载 gcc-multilib ...正在卸载 gcc ...正在卸 ...

  7. 使用Postfix和Dovecot收发电子邮件

    邮件应用协议包括: 简单邮件传输协议(SMTP),用来发送或中转发出的电子邮件,占用tcp 25端口. 第三版邮局协议(POP3),用于将服务器上把邮件存储到本地主机,占用tcp 110端口. 第四版 ...

  8. windows下nodejs与coffeeScript环境搭建

    [本文档摘抄自网上资料] 安装NodeJS和CoffeeScript方法 首先安装Node(因为nodeJs是服务器端javascript运行环境),到http://nodejs.org/下载对应格式 ...

  9. 在 Core Data 中存取 transformable 类型的数据

    本文转载至 http://imenjoe.com/2015/04/10/CoreData-transformable-20150410/ 在开发过程中有一个需要在 Core Data 中存取 NSDi ...

  10. Struts2(二)工作原理

    一.概述 1.struts框架本身分为三个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 2.struts2工作的基本流程: 客户端初始化一个指 ...