Docker 学习
之前一直听说容器可以免去配置环境的麻烦,但是一直没有机会接触,现在刚好有机会可以使用。
三大基础
镜像、容器、仓库
类比的话:镜像是类(iso),容器是实例(操作系统),仓库类似于git的仓库。
镜像的构建是一层层的继承而来的,镜像和容器都是文件,容器退出的时候容器文件依然存在。除非手动使用-rm指定,才会删除。
命令
加载镜像,进入一个新的容器:docker run image:tag command
实例 摘自:https://yeasy.gitbooks.io/docker_practice/image/pull.html
docker run -it --rm \
ubuntu:18.04 \
bash
docker run
就是运行容器的命令 从镜像中新建一个容器
-it
:这是两个参数,一个是-i
:交互式操作,一个是-t
终端。我们这里打算进入bash
执行一些命令并查看返回结果,因此我们需要交互式终端。--rm
:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动docker rm
。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用--rm
可以避免浪费空间。ubuntu:18.04
:这是指用ubuntu:18.04
镜像为基础来启动容器。bash
:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是bash
。
退出: 在容器中exit
进入容器:
docker exec
进入一个已有的容器。 (容器需要已经运行)
dcoker cp
容器的复制
docker ps
列出启动容器 docker ps -a
列出所有容器包括关闭的。
启动之前关闭的容器: docker start container-name
,
需要先启动容器,才能执行docker exec container-name
端口映射
https://blog.csdn.net/wanglei_storage/article/details/48471753
参考
https://juejin.im/entry/5b19e350e51d45069f5e1d66
https://yeasy.gitbooks.io/docker_practice/basic_concept/container.html