Docker在windows下的安装、使用(基础+中级)

2019/10/17

本文涉及最新docker安装、使用、以及自己创建镜像、推送到阿里云上。

环境:windows10


安装
进入docker官网,建议注册账户,类似github一样,也有个docker hub,管理各种镜像。
Docker在windows下的安装、使用(基础+中级)
Docker在windows下的安装、使用(基础+中级)
下载完成打开运行exe,按照提示进行安装。
检验:打开命令提示符cmd。
docker version出现相应的版本提示
docker run hello-world,出现类似下图说明安装完成:
Docker在windows下的安装、使用(基础+中级)


修改镜像源
利用Docker自带的镜像源,现在会非常的慢,所以我们将默认镜像源改为国内的,这里我们改为阿里镜像源

  • 开启阿里云容器镜像服务,找到分配的加速器地址:
    Docker在windows下的安装、使用(基础+中级)
  • 复制第二个框里面的内容,并打开docker-setting-Daemon,将相应的内容复制到框的里面。restart Docker。
    Docker在windows下的安装、使用(基础+中级)Docker在windows下的安装、使用(基础+中级)

一些基础命令
docker [OPTIONS] COMMAND
docker image ls
docker container ls
docker pull image_name:TAG
#从库中拉取指定镜像
docker run --name containerName -d image_name:TAG
#启动。 -i:交互模式 -t:分配伪终端(命令行)-d:后台运行 -p:端口访问 (6666:8080)6666:宿主机端口 8080:应用开放端口
ctrl+p+q
#quit the 交互模式,won’t stop the container
docker rm -f container_name
#删除相应container
docker attach container_id
#连接上相应container的交互界面

容器创建新镜像
docker commit -m=“description” -a=“creator” container_id/container_name image_name:TAG
#如:docker commit -m=“first commit” -a=“hehe” ubuntuuu ubuntu:16.04
详见:https://www.runoob.com/docker/docker-command-manual.html(当然了,更推荐官方网站)。


容器持久化

  • 数据卷(container-host)
    1.直接命令 2.Dockerfile添加:
    1.docker run -it -v /宿主机绝对路径目录(created itself):/容器内目录(created itself):ro 镜像名:TAG
    #ro:容器内只读,宿主机单项更改
    2.volume["/dataConatiner1","/dataContainer2"]
    #只能操作容器内目录,具体宿主机目录,通过docker inspect container_id查看

  • 数据卷容器(container-container)
    docker run --name containerName -d image_name:TAG --volumes-from container_id
    #此时,dockerfile里面dataconatiner1、2均是共享文件夹。


Dockerfile
dockerfile用来创建镜像
常用命令:

name meaning exp
FROM 基础镜像 Docker Hub中99%镜像 都是通过再base(scratch)镜像中安装和配置需要的软件构建出来
MAINTAINER 镜像维护者的姓名和邮箱地址 MAINTAINER name<mailaddress>
RUN 容器构建时需要的命令
EXPOSE 启动后对外暴露的端口
WORKDIR 创建容器后,终端默认登陆进来的工作目录 WORKDIR $MY_path
ENV 构建景象过程中设置环境变量 ENV MY_path /etc/pro
ADD copy+decompress
COPY 将从构建上下文目录中<源目录>的文件/目录复制到新的一层的镜像内的目标位置
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD 指定容器启动时要启动的命令,但只有最后一个生效,CMD会被docker run 后面的参数替换 CMD [“可执行文件”,“参数一”,“参数二”] 或 CMD <命令>
ENTERPOINT 指定容器启动时要启动的命令。区别于CMD,run后面加参数不会被覆盖,而是追加(扩充功能)。
ONBUILD 当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

docker bulid -f dockerfilePath -t imageName:TAG .
#最后需要“.”