windows家庭版安装docker
一、首先查询要安装linux:(下面是centos的安装方式,当然ubuntu也是一样的)
1.直接命令搜索
在cmd命令行中输入:docker search centos(这种方式无法查询到历史版本,所以默认都是最新版的)
2.在docker官网中查询
二、拉取镜像
查询本地镜像
docker images
docker images [TagName:TAG] 可以查询多个版本,如果tag为空,版本号就是latest
docker pull centos:6.7 格式为 镜像名:TAG
三、以交互方式后台运行容器
docker run -it -d -p 50001:22 9f1de3c6ad53 --name centos centos:6.7
docker run -itd -v /c/docker -p 80:80 -p 8080:8080 -p 20000:20100 --restart=always centos:6.7 注:开启一块容器container,并且在C盘新建目录docker给容器挂载存储卷,并且会自动启动
参数解释: (我们创建的容器属于虚拟机使用ssh访问ip是windows宿主机的ip)
-p hostport:containerPort分配端口 第一个参数宿主机的端口,第二个参数容器的端口,所以如果宿主机的端口80被占用了,就不能代替容器虚拟机的端口了,可以有多个端口
正确的创建两个容器eg:docker run -itd -p 50000:22 -p 50001:80 --name centos1 centos:6.7 docker run -itd -p 50002:22-p 50003:80 --name centos2 centos:6.7 不同的容器ip不一样,所以容器ip可以重复
错误的创建eg:docker run -itd -p 50000:22 -p 50001:80 --name centos1 centos:6.7 docker run -itd -p 50000:22-p 50001:80 --name centos2 centos:6.7 宿主机上创建多个容器,所以宿主的端口是不允许重复的
注:-p如果要关联多个端口,也可以批量关联
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行容器,并返回容器ID
--name 为容器命名
-v 分配给容器挂载存储卷
--restart=always 自动重启容器
注:重启docker的时候会自动启动容器,其他默认情况下还需要手动开启容器
最后一个参数是运行的镜像images
四、查看当前容器并进去容器中(启动,关闭,重启)
1.docker attach a814bd4c7802(这种方式不建议使用,因为推出liunx命令操作界面后容器会自动关闭)
2.docker exec -it a814bd4c7802 /bin/bash(docker exec -it containerId command)
退出linux命令行方法:1.输入exit 2.Ctrl+d
关闭已启动的容器或重启
docker stop 84997bb73d13(containerId)
docker restart 84997bb73d13
启动时需要先查询已有容器
docker ps -a
docker start 84997bb73d13
五、删除镜像 删除容器 格式为docker rm 容器名、镜像名
docker rmi
docker rm
六、通过ssh连接
我安装的linux和ubuntu初始都缺少很多命令,所以访问这里可以快速安装对应的命令
1.首先需要启动ssh
1)使用centos启动:service sshd start
2)使用ubuntu启动:service ssh start
2.修改/etc/ssh/sshd_config文件
改PermitRootLogin 为 yes
修改Port为我们前面开发的端口,否则ssh无法连接
3.我每次重启docker容器都会发现ssh并没有自动启动(ps -ef|grep ssh)
所以我们只要在~/.bashrc文件下添加 service sshd start(当然如果是ubuntu是service ssh start)
4.为linux设置密码
命令行输入:passwd设置新密码
useradd test(新增用户)
passwd test(为test用户新增密码)
七、将容器打包为镜像
docker commit 84997bb73d13 test:1.1 docker commit containerId [Repository[:TAG]] 中括号是选填,如果没有给定生成的镜像仓库名,会自动默认生成
给镜像打标签或修改标签:docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
docker tag
八、将镜像上传到docker hub
官网给定的提示如下