文章目录
容器使用
官方可用容器地址
dockerhub
docker 命令
# 载入镜像文件
docker pull nginx
# 启动容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
# -i: 交互式操作。
# -t: 终端。
# -d: 参数默认不会进入容器,容器启动后会进入后台
# --name: 设置容器名字为ubuntu-test
# ubuntu: ubuntu 镜像。
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
容器的查看/关闭/停止
# 查看所有的容器
docker ps -a
# 重启应用
docker restart 容器id
# 关闭容器
docker kill 容器id
# 启动容器
docker start 容器id
# 停止容器
docker stop 容器id
复制本地文件到容器目录
docker cp /usr/local/vendor.js 容器id:/usr/src/app/_site
进入容器
# 进入了容器,并且退出不会导致容器停止
docker exec -it 容器id /bin/bash
# 导出容器快照到本地文件
docker export 容器id > ubuntu.tar
# 导入容器快照
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
# 此外,也可以指定url来导入
docker import http://example.com/image.tgz example/imagerepo
删除容器
docker rm -f 容器id
镜像使用
列出镜像列表
docker images
docker run -t -i ubuntu:15.10 /bin/bash
# 获取指定版本的镜像
docker pull ubuntu:13.10
# 查找镜像
docker search httpd
# 删除镜像
docker rmi hello-world
例子:docker创建mongo本地数据目录和配置文件
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
storage:
dbPath: /data/db
net:
port: 27037
bindIp: 0.0.0.0
#security:
#authorization: enabled
docker run -itd --name attack-i-mongo -v /Users/pixel/mongo:/data/db -v /Users/pixel/mongo/db_config/mongo.conf:/data/configdb/mongo.conf -p 27037:27037 -d mongo -f /data/configdb/mongo.conf
# -v /Users/zhangzhi/mongodb:/data/db
# 宿主机 /Users/pixel/mongo 数据库目录
# 映射到容器 /data/db 目录
# -v /Users/pixel/mongo/db_config/mongo.conf:/data/configdb/mongo.conf
# 宿主机mongodb配置文件 /Users/pixel/mongo/db_config/mongo.conf
# 映射到容器 /data/configdb/mongo.conf
# -p 27037:27037 容器的27037端口,映射到宿主机的27037端口
# 进入运行容器的终端
docker exec -it attack-i-mongo mongo --host 127.0.0.1 --port 27037 admin
# mongo5.0以上的版本使用mongo来执行mongodb命令已经不支持了,你需要改用mongosh来替代mongo!
docker exec -it attack-i-mongo mongosh --host 127.0.0.1 --port 27037 admin
# 使用管理员
use admin
# 创建用户
db.createUser({user:'root',pwd:'root',roles:['root']})
db.createUser({ user: 'admin', pwd: 'admin', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
# Successfully added user: {
# "user" : "admin",
# "roles" : [
# {
# "role" : "userAdminAnyDatabase",
# "db" : "admin"
# }
# ]
# }
# 授权admin
db.auth('admin','admin')
# 1
# 添加数据库操作员
db.createUser({ user: "attack-i", pwd: "attack-i", roles: [ { role: "readWrite", db: "attack-i" } ] });
# nodejs链接示例: mongodb://admin:admin@localhost:27037/attack-i?authSource=admin