Docker 基础使用
2018-12-06 本文已影响0人
观星汉
Docker 安装完成后, 正常使用 Docker 需要了解一些常用的操作指令.
- 查看系统 Docker 服务状态
leo@ulinux:~$ systemctl status docker
如果 Docker 服务没有启动, 使用
sudo systemctl start docker
启动 Docker 服务.
-
docker
运行权限问题
docker 安装完成后不能用当前用户进行运行, 提示权限问题时, 增加当前用户到 docker 用户组重启即可
eo@ulinux:~$ sudo usermod -aG docker ${USER}
-
search
搜索镜像
通常使用镜像一种方式是自己创建, 一种是使用现成的. 现成已经发布的镜像可以通过search
搜索, 选择一个合适的下载下来使用
leo@ulinux:~$ docker search --filter "is-official=true" --filter "stars=3" hello-world
--filter
可以进行搜索过滤,
--filter "is-official=true"
: 只搜索官方镜像.
--filter "stars=3"
: 评分3颗星以上的镜像.
-
pull
下载镜像
通过搜索镜像, 可以得到一个需要的容器列表, 选择一个容器名字, 进行下载
leo@ulinux:~$ docker pull hello-world
pull 可以带 Tag 下载,
docker pull image[:tag]
, 默认的 tag 为latest
, 可以在 hub.docker.com上查看具体的镜像的具体 tag.
-
image
关于镜像
通常我们使用镜像都是会指定镜像的 tag, 如果不指定 tag 通常都是使用默认 tag, 也就是latest
, 通常的用法是 image[:tag]
-
images
查看本机已有的镜像
leo@ulinux:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
docker images
命令列出本机所有的 docker 容器镜像
REPOSITORY
: 表示镜像的仓库源
TAG
: 镜像的标签
IMAGEID
: 镜像ID
CREATED
: 镜像创建时间
SIZE
: 镜像大小
-
run
运行镜像
下载到本地的镜像就可以通过run
执行进行运行了. 也可以直接进行运行, docker 会自动化去下载到本地.
leo@ulinux:~$ docker run hello-world
run
指令可以添加非常多的参数,
--name
: 运行镜像时给这个镜像取名, 方便停止的时候直接对这个名字的镜像进行停用. 比如:--name myNginx
运行nginx
镜像时取名为:myNginx
.--volume , -v
: 挂载一个目录到容器里, 并且覆盖容器里的目录. 格式为-v host-path:image-path[:ro]
,ro
: 可选, 表示挂载的目录只读.--publish , -p
: 端口映射, 主机的端口映射到镜像虚拟机的端口.--detach , -d
: 容器运行在守护进程中. 终端输出容器ID结束.--interactive , -i
: 容器在前端运行, 和-d
参数相反,-i
一直等到用户输入.--tty , -t
: 挂载标准的输入输出, 通常和-i
搭配使用.- 官方文档 查看更多的参数配置.
-
ps
查看本机当前运行的镜像
leo@ulinux:~$ docker ps
-
stop
停用镜像
对于使用 -d 参数运行的镜像, 是安排在后台运行的, 需要stop
指令进行停用.
leo@ulinux:~$ docker stop my-nginx
my-nginx
: 为run
镜像的时候使用--name
参数进行设置的名称, 未设置名称可以使用ps
执行查看容器ID, 然后 使用docker stop ContainerID
停用.
-
start
启用镜像
对于使用 -d 参数运行的镜像, 用stop
指令进行停用后, 可再次快速启动, 根据--name
来启动.
leo@ulinux:~$ docker start my-nginx
-
rm
删除镜像
对于run
时使用--name
的镜像, 使用stop
停用后, 再run
的时候, 这个名字并未被释放, 使用rm
操作进行删除, 以便再次使用
leo@ulinux:~$ docker rm -v my-nginx
-
rmi
删除本地镜像
需要删除已经下载的本地镜像, 使用rmi
即可.
leo@ulinux:~$ docker rmi -f hello-world