docker介绍
- Docker是一个软件集装箱化平台,可以构建应用程序,将它与其依赖关系一起打包到一个容器中,然后这些容器可以很容易地运送到其他机器上运行
- Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器
- Docker 容器通过 Docker 镜像来创建
docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
macOS安装docker
- Homebrew Cask 安装:
brew cask install docker
- 手动下载:Stable或Edge版本的 Docker for Mac
- 查看docker版本信息:
docker --version
- 镜像加速地址:
http://hub-mirror.c.163.com
docker基本命令
- docker run [options] image [command] [arg…]
options说明:
-a stdin
: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d
: 后台运行容器,并返回容器ID;
-i
: 以交互模式运行容器,通常与 -t 同时使用;
-p
: 端口映射,格式为:主机(宿主)端口:容器端口;
-t
: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb"
: 为容器指定一个名称;
--dns 8.8.8.8
: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com
: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars"
: 指定容器的hostname;
-e username="ritchie"
: 设置环境变量;
--env-file=[]
: 从指定文件读入环境变量;
--cpuset="0-2"
or--cpuset="0,1,2"
: 绑定容器到指定CPU运行;
-m
:设置容器使用内存最大值;
--net="bridge"
: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种 类型;
--link=[]
: 添加链接到另一个容器;
--expose=[]
: 开放一个端口或一组端口;
- docker start/stop/restart [options] container [container…]
- docker rm [options] container [container…]
options说明:
-f
:通过SIGKILL信号强制删除一个运行中的容器
-l
:移除容器间的网络连接,而非容器本身
-v
:-v 删除与容器关联的卷
- docker pause/unpause [options] container [container…]
- docker create [options] image [command] [arg…]
实例:docker create --name myrunoob nginx:latest
- docker pull [OPTIONS] NAME[:TAG|@DIGEST]
options说明:
-a
:拉取所有tagged镜像
--disable-content-trust
:忽略镜像的校验,默认开启
Docker的使用
- docker镜像使用
docker images
docker pull httpd
docker run -t -i Name:Tag /bin/bash
若不指定镜像标签,将默认使用:latest镜像
- docker容器连接
- 网络端口映射
-P
:是容器内部端口随机映射到主机的高端口。
-p
: 是容器内部端口绑定到指定的主机端口。 - 安装MongoDB
docker pull mongo
docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:3.2
docker run -it mongo:3.2 mongo --host 172.17.0.1