docker入门加实战—docker常见命令
在介绍命令之前,先用一副图形象的展示一下docker的命令:
常见命令
docker的常见命令和文档地址如下表:
命令 | 说明 | 文档地址 |
---|---|---|
docker pull | 拉取镜像 | docker pull |
docker push | 推送镜像到DockerRegistry | docker push |
docker images | 查看本地镜像 | docker images |
docker rmi | 删除本地镜像 | docker rmi |
docker run | 创建并运行容器(不能重复创建) | docker run |
docker stop | 停止指定容器 | docker stop |
docker start | 启动指定容器 | docker start |
docker restart | 重新启动容器 | docker restart |
docker rm | 删除指定容器 | docs.docker.com |
docker ps | 查看容器 | docker ps |
docker logs | 查看容器运行日志 | docker logs |
docker exec | 进入容器 | docker exec |
docker save | 保存镜像到本地压缩文件 | docker save |
docker load | 加载本地压缩文件到镜像 | docker load |
docker inspect | 查看容器详细信息 | docker inspect |
常见命令演示
在演示常见命令时,先介绍一下使得docker和容器开机自启的命令:
# Docker开机自启
systemctl enable docker
# Docker容器开机自启
docker update --restart=always [容器名/容器id]
以查看DockerHub,拉取Nginx镜像,创建并运行Nginx容器为例,来演示常见命令。
-
在DockerHub中搜索Nginx镜像,查看镜像的名称
打开dockerhub网站dockerhub
搜索nginx
在这里便能看到拉取镜像的命令了:
-
拉取Nginx镜像
docker pull nginx
拉取成功界面:
-
查看本地镜像列表
输入如下命令:
docker images
从而证明拉取成功了。
-
创建并运行Nginx容器
输入如下命令:
docker run -d --name nginx -p 80:80 nginx
-
查看容器
docker ps
对输出内容作格式化:
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
-
停止容器
docker stop nginx
再次查看容器
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
可以发现nginx容器已经停掉了。
# 查看所有的容器需要添加-a参数 docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" -a
-
再次启动容器
docker start nginx
-
查看日志
docker logs nginx # 或者加上-f参数 一直查看日志,不停 docker logs -f nginx
-
查看容器详细信息
docker inspect nginx
-
进入Nginx容器
docker exec -it nginx bash # -it参数 表示 可交互的终端 # bash表示使用命令行进行交互
-
退出容器
exit
-
删除容器
docker rm nginx
发现无法删除;
有两种解决方案:
-
停掉容器再删除
docker stop nginx docker rm nginx
-
强制删除
docker rm nginx -f
-
命令别名
我们发现docker ps命令输出内容比较多,我们需要使用format来格式化输出,但是这条命令比较长,我们可以给他起个别名:
修改bashrc文件
# 修改/root/.bashrc文件
vi /root/.bashrc
原始内容如下:
内容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
使其生效
source /root/.bashrc
查看命令别名:
dps