Docker入门

Docker环境搭建

重装了docker,原本是使用Docker Toolbox进行安装的,但在对应docker开源项目上,开发者说已经不维护docker toolbox,推荐使用 Desktop for Windows Home,这在官网可以直接下载,安装一直next就可以,成功后,可能会遇到
WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
的启动问题,实际上只要更新wls2即可更新 WSL 2 Linux 内核,微软拥抱linux,于是做出了wsl2,能够更好地运行本地的虚拟机,其他产商(vm/docker)也通过接口进行适配,这也许就是toolbox停止维护的原因,总之,在更新本地wsl2之后,docker就能够正常启动了。

Docker 入门项目

尝试制作一个vue的image文件,并启动运行

  1. 准备,新建一个vue项目,参考vue
  2. 进入vue工程,新建两个文件

Dockerfile 用于设置image基础参数(端口,初始镜像),内容如下

FROM node:latest        设置初始镜像版本,最新即为latest
COPY . /app             设置拷贝到的文件名称
WORKDIR /app            设置默认的工作路径
EXPOSE 8080             设置容器向外部暴露的端口

.dockerignore 设置容器打包时不包含的文件,内容如下

.git                不打包.git工程文件

开始制作image,-t后为名称,名称后还有个点表示当前文件位置,eg:..为上级

docker image build -t docker-test .

打包结果

#8 exporting to image
#8 exporting layers
#8 exporting layers 3.3s done
#8 writing image sha256:45b7a1e821cf33be3c68f9af16bf6ab40250e4e467aad61e61e1fd47238786c0 0.0s done
#8 naming to docker.io/library/docker-test done
#8 DONE 3.5s

可以使用docker image ls查看完成的打包,也可以在docker客户端中直接看到自己完成的image。

运行刚制作好的镜像

docker container run -p 8080:8080 -it docker-test /bin/bash

指令参数:-p表示要映射的端口,前者为本机端口,后者为容器端口(亦可参考docker端口映射),运行后,就进入了一个bash的输入界面,和linux的操作是一模一样的,和vue一样,使用npm run dev就能启动相应的程序。
使ctrl+d或者exit指令退出容器,编辑器崩溃的情况下,可以通过

docker container ls             打印所有容器
docker container kill [id]      终止指定运行的容器

结束所有操作后,为了不占用空间,可以把容器文件删除

docker container ls --all               显示所有运行过的容器实例
res:
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
f9a1e383df3c        docker-test         "docker-entrypoint.s…"   6 minutes ago       Exited (0) About a minute ago                       inspiring_kepler

docker container rm f9a1e               删除指定的实例,id号输入前几位即可
res:
f9a1e

在本实例中,对于vue示例的测试,最终运行的vue实例没能够通过本地端口的访问显示在浏览器中,重新进入容器,由于要修改容器中的文件,但同时发现默认没有安装vim,使用

apt-get update
apt-get install vim

升级apt并安装vim,以后这些文件指令或者想要提前操作的指令(npm run dev)可以写在Dockerfile中,这样在制作image的时候就默认将需要环境配置好,在容器中查看文件后发现是vue项目默认网址为localhost,修改为0.0.0.0,并重新启动就好了

需要注意的地方

  1. container实例是由image镜像启动的程序,可以使用
    docker container run -p 8080:8080 -it docker-test /bin/bash的方式启动一个刚制作好的镜像文件
    对于之前就启动过的container,可以通过docker container start [container id]的方式启动一个已经存在的container,如果想要能够以shell的方式控制已经启动过的docker,则使用docker exec -it [container id] bash,或者可以使用docker container attach [containerid]
  2. 在container shell内部时,可以通过使用ctrl+d或者exit指令退出容器,此时只是退出了shell而已,还要使用docker container kill [containerID]终止任何在运行过程中的container。
  3. 任何启动过的container实例,在本地会存在一个容器文件,可以使用docker container ls -a的方式打印出任何相关的文件列表。然后通过docker container rm [containerID]的方式删除该文件。删除image镜像则使用docker image rm [imageName]

docker实例和宿主机的文件传输可以通过以下指令实现

docker cp [filename] <容器名或id>:[location]       //将本地文件发送到指定的容器中
docker cp <容器名或id>:[location] [filename]       //将docker文件发送到宿主设备中

该指令和scp很像。

最后,以上的所有containerid都可以只输入前几位

参考
Docker入门
docker入门——构建镜像
Docker官方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值