Docker基础
0 票
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
后续
docker
与 Koa
的结合,进行dockerfile实践。