cenos7.0 安装docker

使用yum命令在线安装 

yum install docker

安装后查看Docker版本 docker -v
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker

搜索镜像

docker search 镜像名称
命令拉取centos7:docker pull centos:7


docker rmi $IMAGE_ID:删除指定镜像
docker rmi `docker images -q`:删除所有镜像
查看正在运行容器:
docker ps
查看所有的容器(启动过的历史容器):
docker ps –a
查看最后一次运行的容器:
docker ps –l

查看停止的容器:
docker ps -f status=exited

创建一个交互式容器并取名为mycentos
docker run -it --name=mycentos centos:7 /bin/bash

创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称不能重复):
docker run -di --name=mycentos2 centos:7
登录守护式容器方式:
docker exec -it container_name (或者 container_id)  /bin/bash(exit退出时,容器不会停止)
停止正在运行的容器:docker stop $CONTAINER_NAME/ID
启动已运行过的容器:docker start $CONTAINER_NAME/ID
将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
创建容器 添加-v参数 后边为   宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7
多级的目录,可能会出现权限不足的提示。因为CentOS7中的安全模块selinux把权限禁掉了,需要添加参数  --privileged=true  来解决挂载的目录没有权限的问题
查看容器IP地址
docker inspect mycentos2
删除指定的容器:

docker rm $CONTAINER_ID/NAME
只能删除停止的容器


删除所有容器:docker rm `docker ps -a -q`


MySQL部署


拉取MySQL镜像
docker pull mysql


创建MySQL容器
docker run -di --name my_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p 代表端口映射,格式为  宿主机映射端口:容器运行端口
-e 代表添加环境变量  MYSQL_ROOT_PASSWORD是root用户的登陆密码


进入MySQL容器,登陆MySQL
进入mysql容器
docker exec -it my_mysql /bin/bash
登陆mysql
mysql -u root -p
查看容器运行的各种数据
docker inspect my_mysql

Redis部署

拉取Redis镜像

docker pull redis

创建Redis容器

 docker run -di --name=my_redis -p 6379:6379 redis

 客户端测试

window版本redis测试

redis-cli -h ip地址

//下载镜像
docker pull gogs/gogs
// 创建容器
docker run -d --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs

http://192.168.25.135:3000

MongoDB安装

docker pull mongo:3.4.1

#  启用认证

docker run --name mongodb -p 27017:27017 -d  mongo:3.4.1 --auth

//进入

docker  exec -it $IMAGE_ID mongo admin

// 创建一个 admin 管理员账号:

> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"password",roles:["root"]})
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }

//退出进入后对 admin 进行身份认证:

> db.auth("admin", "password")

//创建 用户、密码和数据库:

> use test1
switched to db test1
> db.createUser({user: "fly", pwd: "fly", roles: [{ role: "dbOwner", db: "test1" }]})   # 创建用户fly,设置密码fly,设置角色dbOwner

//查看系统用户

> use admin
switched to db admin
> db.system.users.find()  # 显示当前系统用户

// 删除用户

1.切换admin ,删除用户fly ,删除失败
> use admin switched to db admin > db.dropUser("fly") false
2.切换fly ,删除用户fly,删除成功 > use fly switched to db flowpp > db.dropUser("fly") true

//切换数据库

use app

// 添加数据

db.test.save({name:"123123"});

远程连接的开启

docker exec -it $IMAGE_ID /bin/bash

注:如果出现

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory": unknown 这样的错误,是我们docker镜像中的/bin/bash文件并不存在,可能存在的是/bin/sh文件,使用

docker exec -it $IMAGE_ID /bin/sh

//更新源 apt-get update

//安装 vim apt-get install vim

//修改 mongo 配置文件 vim /etc/mongod.conf.orig

// 将其中的 bindIp: 127.0.0.1 改为 bindIp: 0.0.0.0

 

MongoDB role 类型

  • 数据库用户角色(Database User Roles)

    read:授予User只读数据的权限
    readWrite:授予User读写数据的权限

  • 数据库管理角色(Database Administration Roles):

    dbAdmin:在当前dB中执行管理操作
    dbOwner:在当前DB中执行任意操作
    userAdmin:在当前DB中管理User

  • 备份和还原角色(Backup and Restoration Roles):

    backup
    restore

  • 跨库角色(All-Database Roles):

    readAnyDatabase:授予在所有数据库上读取数据的权限
    readWriteAnyDatabase:授予在所有数据库上读写数据的权限
    userAdminAnyDatabase:授予在所有数据库上管理User的权限
    dbAdminAnyDatabase:授予管理所有数据库的权限

  • 集群管理角色(Cluster Administration Roles):

    clusterAdmin:授予管理集群的最高权限
    clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
    clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
    hostManager:管理Server

原文地址:https://www.cnblogs.com/fly-book/p/10103403.html