docker 常用命令
一、docker基础命令
- 启动docker:systemctl start docker
- 关闭docker:systemctl stop docker
- 重启docker:systemctl restart docker
- docker设置随服务启动而自启动:systemctl enable docker
- 查看docker 运行状态:systemctl status docker
- 查看docker 版本号信息:docker version/docker info
- docker 帮助命令:docker --help
- 查看docker具体命令的使用帮助:docker ps --help
二、docker镜像命令
2.1 搜索官方仓库镜像:
docker search centos
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
2.2 拉取镜像
根据镜像名称拉取镜像
docker pull centos
2.3 查看当前主机镜像列表
1 2 | doker images docker image list |
2.4 导出镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
1 | docker image save centos > docker-centos.tar.gz |
2.5 删除镜像
2.5.1通过镜像名称强制删除:
1 | docker image rm centos:latest |
2.5.2 通过镜像ID强制删除:
1 | docker image rm 5d0da3dc9764 |
2.5.3 删除一个
1 | docker rmi -f 镜像名/镜像ID |
2.5.4 删除多个
其镜像ID或镜像用用空格隔开即可
1 | docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID |
2.5.5 删除全部镜像
1 | docker rmi -f $(docker images -aq) |
注:-a 意思为显示全部, -q 意思为只显示ID
2.6 导入镜像
1 | docker image load -i docker-centos.tar.gz |
2.7 查看镜像的详细信息
docker image inspect +镜像名称
1 | docker image inspect centos |
2.8 设置镜像标签
docker tag 镜像ID 镜像名称:标签名
1 | docker tag 5d0da3dc9764 centos:dev |
2.9 创建镜像
我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
使用命令:touch Dockerfile 创建文件,文件内容如下:
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像:
1 | docker build -t runood/centos:6.7 . |
参数说明:
-
-t :指定要创建的目标镜像名
-
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在,镜像ID:e209e0634366
2.10 显示一个镜像的历史
docker history +镜像名称
1 | docker history centos |
三、docker 容器命令
3.1 启动容器
1 | docker run -it python |
参数说明:
- -i: 交互式操作。
- -t: 终端。
要退出终端,直接输入 exit:
3.2 查看所有容器
docker ps -a 查看所有容器(包括启动或停止的容器),docker ps --->查看运行中的容器
1 | docker ps -a |
3.3 停止容器
1 | docker stop 容器ID |
3.4 启动/重启容器
停止的容器可以通过 docker restart 重启或者使用docker start 启动
1 | docker restart <容器 ID> |
3.5 后台运行容器
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
1 | docker run -itd 容器名称/ID |
3.6 进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
-
docker attach
-
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
attach 命令
下面演示了使用 docker attach 命令。
1 | docker attach 容器ID |
注意: 如果从这个容器退出,会导致容器的停止。
exec 命令
下面演示了使用 docker exec 命令。
1 | docker exec -it 9cc9349c8275 /bin/bash |
3.7 导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
语法:docker export [OPTIONS] CONTAINER
OPTIONS说明:
-
-o :将输入内容写到文件。
1 | docker export -o 容器名称 容器ID |
3.8 导入容器
可以使用 docker import 从容器快照文件中再导入为镜像
语法:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS说明:
-
-c :应用docker 指令创建镜像;
-
-m :提交时的说明文字;
实例:从镜像归档文件python.tar.gz 创建镜像,命名为python
1 | docker import python.tar.gz python |
3.9 删除容器
3.9.1 删除所有容器
1 | docker rm -f `docker ps -a -q` |
# -f 强制删除
3.9.2 删除容器
1 | docker rm -f 容器ID |
3.10 启动容器时进行端口映射
-p参数端口映射
实例:
1 | docker run -d -p 8080:8888 5eb506608219 |
不同指定映射方法
参数 |
说明 |
-p hostPort:containerPort |
端口映射 -p 8080:80 |
-p ip:hostPort:containerPort |
配置监听地址 -p 10.0.0.100:8080:80 |
-p ip::containerPort |
随机分配端口 -p 10.0.0.100::80 |
-p hostPort:containerPort:udp |
指定协议 -p 8080:80:tcp |
-p 81:80 –p 443:443 |
指定多个 |
随机映射
docker run -P (大P)# 需要镜像支持
3.11 查看容器运行过程中的日志
1 | docker logs 容器ID |
3.12 查看容器内部运行的进程
1 | docker top 容器ID |
3.13 容器文件拷贝
场景1:从容器内拷贝出
docker cp 容器内ID:文件路径 容器外路径
eg:将容器内home路径下的test.txt文件复制到 当前文件路径下
场景2:从外部拷贝到容器内
docker cp 容器外文件路径 容器内ID:容器内路径
eg:将容器外的hello.jar包复制到容器内home路径下
3.14 更换容器名称
docker rename 容器ID/旧容器名称 新容器名称
四、Dockerfile自动构建docker镜像
4.1 Dockerfile指令集
dockerfile主要组成部分:
1 2 3 | 基础镜像信息 FROM centos:6.8 制作镜像操作指令RUN yum insatll openssh-server -y 容器启动时执行指令 CMD [ "/bin/bash" ] |
dockerfile常用指令:
1 2 3 4 5 6 7 8 9 10 11 12 | FROM #基础镜像一切从这里开始 MAINTAINER #镜像是谁写的,姓名加邮箱 RUN #镜像构建时需要的命令 ADD #步骤tomcat镜像,这个tomcat压缩包!添加内容 WORKDIR #镜像工作目录 VOLUME #挂载的位置 EXPOSE #暴露端口 CMD #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT #指定这个容器启动时要运行的命令,可以追加 ONBUILD #当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令 COPY #类似ADD,将命令拷贝到镜像当中 ENV #构建的时候设置环境变量 |
4.1 构建步骤
1.先创建Dockerfile文件,使用vi Dockerfile ,写入如下内容:
1 2 3 4 5 6 7 | FROM centos MAINTAINER redrose2100<hitredrose@163.com> ENV JAVA_HOME /usr/local/jdk1.8/ WORKDIR /usr/local COPY /helloworld/hello.jar /home/ EXPOSE 80 CMD /bin/bash |
2.使用docker build 命令构建镜像,如下所示:
1 | docker build -t runood/centos:6.7 . |
注: -t 设置镜像标签 ;. 表示使用当前路径下的Dockerfile文件
本文来自博客园,作者:别摸我的马甲线,转载请注明原文链接:https://www.cnblogs.com/a-wyw/p/16301069.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)