docker

Docker

基础教程

菜鸟教程-docker教程

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
docker command --help
docker images
docker pull ubuntu:13.10
docker rmi hello-world
#从容器中更新镜像
#1、在容器内使用 apt-get update 命令进行更新。
#2、通过命令 docker commit 来提交容器副本。
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
docker build -t runoob/centos:6.7 .
docker run -it ubuntu:15.10 /bin/bash
docker ps (-a)
docker logs
docker start|stop
docker exec 1e560fca3906 /bin/bash
docker rm -f 1e560fca3906 (-f 强制删除?)
#新建互联网络
docker network create -d bridge test-net

docker container ls --all
#从正在运行的容器里面,将文件拷贝到本机。
docker container cp [containID] 本机路径:[/path/to/file]
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
-d: 指定容器在后台运行。
-p: 是容器内部端口绑定到指定的主机端口。
--name test:给容器命名。
--rm:容器终止运行后,自动删除容器文件。
--env MYSQL_ROOT_PASSWORD=123456:向容器进程传入一个环境变量MYSQL_ROOT_PASSWORD,该变量会被用作 MySQL 的根密码。
--volume "$PWD/":/var/html:将当前目录($PWD-根据当前操作系统变化)映射到容器的/var/html。
--link db:mysql: 容器要连到 db 容器,冒号表示该容器的别名是mysql。

#redis
docker run --name redis-copy --volume E:\docker\redis:/data redis:5.0 redis-server --save 60 1 --loglevel warning

基础概念

安装(部署)软件最大的麻烦事之一,就是环境配置。虚拟机(virtual machine)就是带环境安装的一种解决方案。

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。
对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
Docker 将应用程序与该程序的依赖,打包在一个文件里面(image 文件)。运行这个文件,就会生成一个虚拟容器。

Dockerfile 是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。
RUN命令在 image 文件的构建阶段执行,执行结果都会打包进入 image 文件;CMD命令则是在容器启动后执行。
进程运行在 Docker 容器的虚拟环境里面,进程接触到的文件系统和网络接口都是虚拟的,与本机的文件系统和网络接口是隔离的,因此需要定义容器与物理机的端口映射(map)。

Docker Compose 可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。