docker指令

Docker重要概念

镜像(Image)、容器(Container)、仓库(Registry)

https://gitchat.csdn.net/columnTopic/5a13bf0175462408e0da8dc1

Docker CE 的安装

卸载旧版本:sudo apt-get remove docker docker-engine docker.io

安装Docker CE:https://gitchat.csdn.net/columnTopic/5a13bf6475462408e0da8df3

Docker使用入门(一)

镜像

获取镜像:sudo docker pull ubuntu:16.04

查看电脑中有哪些镜像:sudo docker images

删除镜像:sudo docker rmi [nameOfImage]

查看镜像操作记录:sudo docker history [nameOfImage]

查看镜像详细信息:sudo docker inspect [nameOfImage]

给镜像设置一个新的仓库:版本对:sudo docker tag my_image:v1.0 my:v0.1

容器

从镜像运行一个容器:sudo docker run -ti --name first ubuntu:16.04 bash

  • -ti 参数的含义是:terminal interactive,这个参数可以让我们进入容器的交互式终端。
  • --name 指定容器的名字,后面的 first 就是我们给这个容器起的名字。
  • ubuntu:16.04 是致命从哪个镜像运行容器,ubuntu是仓库名,16.04是标签。
  • bash 指明我们使用 bash 终端。

从相同的镜像再运行一个新的容器:sudo docker run -ti --name second ubuntu:16.04 bash

退出容器:exit

查看当前的容器:sudo docker ps -a

把容器提交为一个新的镜像:sudo docker commit first my_image:v1.0

  其中,my_image:v1.0 就是“仓库名:版本号”。真正开发的时候要避免从容器提交镜像的方法。

具体来说,当你运行“Docker run”的时候:

  • 检查本地是否存在指定的镜像,不存在就从公共仓库下载;
  • 利用镜像创建并启动一个容器;
  • 给容器包含一个主进程(Docker 原则之一:一个容器一个进程,只要这个进程还存在,容器就会继续运行);
  • 为容器分配文件系统,IP,从宿主主机配置的网桥接口中桥接一个虚拟接口等(会在之后的教程讲解)。

所谓“守护态运行”其实就是后台运行(background running),有时候,需要让 Docker 在后台运行而不是直接把执行的结果输出到当前的宿主主机下,这个时候需要在运行“docker run”命令的时候加上 “-d”参数(-d means detach)。

sudo docker run -d --name withD ubuntu:16.04 bash -c "echo hello world"

进入容器一般有三种方法:

  • ssh 登录
  • attach 和 exec
  • nesenter

exec方式:sudo docker exec -ti first bash

若提示错误:Error response from daemon: Container e3cdd07155f738b6b2ab234cb33c4d1f85c7f4645a7fa2e3173e5638de9bf001 is not running

则先执行:docker start first

docker run与docker start的区别

docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。
docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。

attach方式:sudo docker attach first

区别:attach 实际就是进入容器的主进程,所以无论你同时 attach 多少,其实都是进入了主进程。exec 就不一样了,exec 的过程其实是给容器新开了一个进程。

终止运行的容器:

方式1:sudo kill nameOfContainer

方式2:attach 进入容器之后运行“exit”结束容器主进程

删除容器:sudo docker rm nameOfContainer

查看容器详细信息: sudo docker inspect [nameOfContainer]

查看容器最近一个进程:sudo docker top [nameOfContainer]

停止一个正在运行的容器:sudo docker stop [nameOfContainer]

重启一个正在运行的容器:sudo docker restart [nameOfContainer]

暂停一个容器进程:sudo docker pause [nameOfContainer]

取消暂停:sudo docker unpause [nameOfContainer]

终止一个容器:sudo docker kill [nameOfContainer]

Docker日志:sudo docker logs [nameOfContainer]

Docker使用入门(二)

在容器里直接写入数据是很不好的习惯,那么,如果想在容器里面写入数据,该怎么做呢?Docker 数据管理主要有两种方式:数据卷数据卷容器

数据卷

在运行 Docker run 命令的时候使用 -v 参数为容器挂载一个数据卷:sudo docker run -ti --name volume1 -v /myDir ubuntu:16.04 bash

可以发现我们的容器里面有一个 myDir 的目录,这个目录就是我们所说的数据卷。

删除一个数据卷

数据卷是用来持久化数据的,所以数据卷的生命周期独立于容器。所以在容器结束后数据卷并不会被删除,如果你希望删除数据卷,可以在使用 docker rm 命令删除容器的时候加上 -v 参数。

Docker网络

查看容器端口映射:
docker container port d11ff9db039a[container ID] 

posted @ 2019-07-17 19:50  walker_bin  阅读(587)  评论(0编辑  收藏  举报