Docker基础

Build once,Run anywhere

书包里面放了一张房子的照片,我从书包里面取出照片,我可以在任何地方迅速建造起我的房子。(个人理解)

CentOS安装

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

启动服务

$ systemctl start docker

查看镜像

-a 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)

$ docker images -a

查看容器

-a 列出所有容器,包括未运行的

$ docker ps -a

重启容器

$ docker restart 

查看mongo相关可用版本

$ docker search mongo

下载MongoDB镜像

:latest(最新版的镜像)

$ docker pull mongo

运行

-i :表示交互式运行容器

-t :表示容器启动后会进入命令行。加上-it后,容器创建后就会分配一个伪终端

-p 27017:27017 :宿主机port:容器port,外部可以直接通过宿主机 ip:27017 访问到 mongo 的服务。–public,表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

-d:创建一个守护式容器在后台运行

-v:目录映射,表示目录映射关系或者容器卷。使用方式为 -v 宿主机路径/卷名:容器路径:选项列表。如果是宿主机路径,必须使用绝对路径。选项列表可以ro/rw。可以使用多个-v做多个目录或文件映射。
注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。(当前目录的任何修改,都会反映到容器里面,进而被外部访问到)
数据修改是假的双向,因为是同一个文件

$ docker run -itd --name mongo -p 27017:27017 mongo # 正常启动
$ docker run -itd --name mongo -p 27017:27017 -v /docker/mongo_configdb:/data/configdb -v /docker/mongo_db:/data/db mongo --auth # 使用身份认证模式启动

进入内部容器

$ docker exec -it mynginx /bin/bash # 正常进入
$ docker exec -it mongo mongo admin # 输入命令进入容器内部的mongo命令行(https://www.jianshu.com/p/2181b2e27021)

删除本地镜像

-f 强制删除镜像

$ docker image rm [选项] <容器ID或容器名> 

删除本地容器

-f 强制删除容器

$ docker stop <容器ID或容器名> 
$ docker rm [选项] <容器ID或容器名> 

查看容器日志

$ docker container logs

容器安装vi/vim

$ apt-get update
$ apt-get install vim

后续

dockerKoa 的结合,进行dockerfile实践。