Docker

1.报错Installation failed:one pre-requisite is not fullfilled:
由于依赖Windows专业版,所以需要伪装专业版,
用管理员权限开启运行「cmd」命令开启命令行,然后输入如下指令:

REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F

2.家庭版没有Hyper-V则需要,
新建文件Hyper-V.cmd

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

保存后右键以管理员运行,最后输入Y。
重启电脑,Hyper-V就出来了

3.报错:Containers Windows Feature is not available
新建一个containers.bat

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause

在linux系统中:
1.第一步如果系统内有老版本的docker,我们需要先删除之前的docker以及相关依赖。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 

设置阿里云镜像源

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装 Docker-CE

sudo yum install docker-ce

开机自启

sudo systemctl enable docker 

启动docker服务

sudo systemctl start docker

查看服务是否启动成功

sudo systemctl status docker.service

查看版本

sudo docker version

拉取 Docker 镜像时加速
在/etc/docker/daemon.json(Linux)编辑

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

在命令行中

sudo tee /etc/docker/daemon.json <<-'EOF'
#这里使用的是网易云
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

镜像官网拉取:https://hub.docker.com/search?q=&type=image

#这里必须重启服务,不然拉镜像会特别慢
systemctl restart docker.service

拉取前查看有哪些镜像

docker images 

然后拉取mongo镜像

docker pull mongo

使用这个镜像。输入命令:

docker run -p 27000:27017 -v $PWD/db:/data/db -d mongo:latest

其中, -p 参数为端口映射,格式为:主机(宿主)端口:容器端口,-v参数为数据卷挂载,将主机的目录$PWD/db 映射到容器的 /data/db,这是为了存储MongoDB操作时的数据,-d参数表示后台运行。

查询正在运行的docker容器:

docker ps

执行MongoDB容器

docker exec -it 容器ID
在虚拟机中输入mongo进入mongo模式

在这里插入图片描述
 显示数据库:

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

创建新数据库及集合:

> use school
switched to db school
> db.createCollection('teacher')
{ "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
school  0.000GB

往集合中插入新数据:

> db.teacher.insert({id:1,name:'zhangshan',age:38})
WriteResult({ "nInserted" : 1 })

查询数据

> db.teacher.find()
{ "_id" : ObjectId("5c6d12d880b47c18564d99a7"), "id" : 1, "name" : "zhangshan", "age" : 38 }
其他命令
# 删除容器
docker rm <容器名 or ID>
# 查看容器日志
docker logs -f <容器名 or ID>
# 查看正在运行的容器
docker ps
# 查看所有的容器,包括已经停止的。
docker ps -a 
# 删除所有容器
docker rm $(docker ps -a -q)
# 停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器

# 后台运行 docker run -d <Other Parameters>
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
# 暴露端口: 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
# 映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值