docker 命令

docker 命令图

  • Images镜像相关的命令

    docker images: 列出所有镜像
    docker rmi: 删除镜像
    docker tag: 给源镜像创建一个新的标签,变成新的镜像
    docker history: 显示镜像的历史

  • Container容器相关的命令

    docker start: 启动一个或者多个容器
    docker kill/stop: 杀死/停止一个或者多个容器
    docker pause/unpause: 暂停/启动 一个或者多个容器
    docker rm: 移除一个或者多个容器
    docker ps: 列出所有容器

  • 镜像和容器之间转换的命令

    docker commit: 把容器的改变 提交创建一个新的镜像
    docker create: 创建新容器,但并不启动(注意与docker run 的区分)需要手动启动。start\stop
    docker run: 创建并启动容器

docker的主要命令图解:

docker 命令列表

命令 作用
attach 绑定到运行中容器的 标准输入, 输出,以及错误流(这样似乎也能进入容器内容,但是一定小心,他们操作的就是控制台,控制台的退出命令会生效,比如redis,nginx…
build 从一个 Dockerfile 文件构建镜像
commit 把容器的改变 提交创建一个新的镜像
cp 容器和本地文件系统间 复制 文件/文件夹
create 创建新容器,但并不启动(注意与docker run 的区分)需要手动启动。start\stop
diff 检查容器里文件系统结构的更改【A:添加文件或目录 D:文件或者目录删除 C:文件或者目录更改】
events 获取服务器的实时事件
exec 在运行时的容器内运行命令
export 导出容器的文件系统为一个tar文件。commit是直接提交成镜像,export是导出成文件方便传输
history 显示镜像的历史
images 列出所有镜像
import 导入tar的内容创建一个镜像,再导入进来的镜像直接启动不了容器。/docker-entrypoint.sh nginx -g 'daemon of;'docker ps --no-trunc 看下之前的完整启动命令再用他
info 显示系统信息
inspect 获取docker对象的底层信息
kill 杀死一个或者多个容器
load 从 tar 文件加载镜像
login 登录Docker registry
logout 退出Docker registry
logs 获取容器日志;容器以前在前台控制台能输出的所有内容,都可以看到
pause 暂停一个或者多个容器
port 列出容器的端口映射
ps 列出所有容器
pull 从registry下载一个image 或者repository
push 给registry推送一个image或者repository
rename 重命名一个容器
restart 重启一个或者多个容器
rm 移除一个或者多个容器
rmi 移除一个或者多个镜像
run 创建并启动容器
save 把一个或者多个镜像保存为tar文件
search 去docker hub寻找镜像
start 启动一个或者多个容器
stats 显示容器资源的实时使用状态
stop 停止一个或者多个容器
tag 给源镜像创建一个新的标签,变成新的镜像
top 显示正在运行容器的进程
unpause pause的反操作
update 更新一个或者多个docker容器配置
version Show the Docker version information
container 管理容器
image 管理镜像
network 管理网络
volume 管理卷

docker 命令示例

docker pull redis : 等价docker pull redis:latest, 下载镜像
docker rmi -f: 删除镜像
docker images -aq: 删除全部镜像
docker image prune #移除游离镜像 dangling:游离镜像(没有镜像名字的)
docker tag 原镜像:标签 新镜像名:标签 #重命名

docker create [OPTIONS] IMAGE [COMMAND] [ARG…]
docker create [设置项] 镜像名 [启动] [启动参数…]
docker create redis: 按照redis:latest镜像启动一个容器

docker kill是强制kill -9(直接拔电源);
docker stop可以允许优雅停机(当前正在运行中的程序处理完所有事情后再停止)

docker create --name myredis -p 6379(主机的端口):6379(容器的端口) redis -p port1:port2

docker run --name myredis2 -p 6379:6379 -p 8888:6379 redis :默认是前台启动的,一般加上-d 让他后台悄悄启动, 虚拟机的很多端口绑定容器的一个端口是允许的
docker run -d == docker create + docker start

删除docker所有运行的容器

docker rm -f $(docker ps -aq)

docker exec -it

进入运行中的容器内部

exec: Run a command in a running container(在运行的容器中运行命令)
exec -i: --interactive(相互作用的). Keep STDIN open even if not attached(即使没有连接,也要保持STDIN打开)
exec -t: --tty Allocate a pseudo-TTY(分配一个伪终端设备)

如下:
docker exec -it mynginx4 /bin/bash: 0用户,以特权方式进入容器

docker run 部署容器

常用关键参数 OPTIONS 说明:

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name=“nginx-lb”:为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--restart , 指定重启策略,可以写–restart=awlays 总是故障重启
--volume , -v: 绑定一个卷。一般格式 主机文件或文件夹:虚拟机文件或文件夹

常见部署案例:

部署Nginx

#注意 外部的/nginx/conf下面的内容必须存在,否则挂载会覆盖
docker run --name nginx-app \
-v /app/nginx/html:/usr/share/nginx/html:ro \
-v /app/nginx/conf:/etc/nginx
-d nginx

部署MySQL

# 5.7版本
docker run -p 3306:3306 --name mysql57-app \
-v /app/mysql/log:/var/log/mysql \
-v /app/mysql/data:/var/lib/mysql \
-v /app/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7#8.x版本,引入了 secure-file-priv 机制,磁盘挂载将没有权限读写data数据,
# 所以需要将权限透传,或者chmod -R 777 /app/mysql/data# --privileged 特权容器,容器内使用真正的root用户
docker run -p 3306:3306 --name mysql8-app \
-v /app/mysql/conf:/etc/mysql/conf.d \
-v /app/mysql/log:/var/log/mysql \
-v /app/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--privileged \
-d mysql

部署Redis

# 提前准备好redis.conf文件,创建好相应的文件夹。如:
port 6379
appendonly yes
#更多配置参照 https://raw.githubusercontent.com/redis/redis/6.0/redis.conf
docker run -p 6379:6379 --name redis \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d redis:6.2.1-alpine3.13 \
redis-server /etc/redis/redis.conf --appendonly yes

部署ElasticSearch

#准备文件和文件夹,并chmod -R 777 xxx
#配置文件内容,参照
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/node.name.html 搜索相
关配置
# 考虑为什么挂载使用esconfig ...
docker run --name=elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms300m -Xmx300m" \
-v /app/es/data:/usr/share/elasticsearch/data \
-v /app/es/plugins:/usr/shrae/elasticsearch/plugins \
-v esconfig:/usr/share/elasticsearch/config \
-d elasticsearch:7.12.0

重启策略

  • no,默认策略,在容器退出时不重启容器
  • on-failure,在容器非正常退出时(退出状态非0),才会重启容器
  • on-failure:3,在容器非正常退出时重启容器,最多重启3次
  • always,在容器退出时总是重启容器
  • unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

docker 命令(总结和图解)相关推荐

  1. Docker学习笔记3——Docker命令(幕布笔记)

    命令文档: https://docs.docker.com/engine/reference/run/ 整体图解: Docker命令(镜像): Docker命令(容器): Docker命令(其他): ...

  2. 设置普通用户执行docker命令,执行docker命令无需输入密码或者切换root用户

    每次执行docker命令都要输入密码或者切换root用户,非常不方便,尤其是在shell脚本中就更麻烦了,一起来解决这个问题: 1. 创建名为docker的组,如果之前已经有该组就会提示已存在: su ...

  3. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  4. docker desktop ubuntu镜像_资深专家都知道的顶级 Docker 命令!

    开发人员一直在努力提高 Docker 的使用率和性能,命令也在不停变化.Docker 命令经常被弃用,或被替换为更新且更有效的命令,本文总结了近年来资深专家最常用的命令列表并给出部分使用方法. 目前, ...

  5. 这54个docker命令!你必须懂!

    Docker是一个不断发展的系统,开发人员积极改进使用和性能.所以命令总是在变化.docker一些老的命令经常被弃用,并被新的或更有效的命令取代.您可以使用帮助选项检查Docker安装上的最新可用命令 ...

  6. docker 命令详细解释

    docker命令详解github地址:链接描述如果对你有帮助,请给我star下! 此次操作都是在unbantu17.01下进行,docker版本是17.10.0-ce,docker-compose是1 ...

  7. Ubuntu、CentOS 解决docker命令权限问题(sudo)

    Ubuntu.CentOS 解决docker命令权限问题(sudo) 参考文章: (1)Ubuntu.CentOS 解决docker命令权限问题(sudo) (2)https://www.cnblog ...

  8. 安装Docker和下载images镜像和常用Docker命令

    安装Docker和下载images镜像和常用Docker命令 我的是centos7的方法: $sudo yum install docker 直接yum安装contos7使用centos6.5先获取e ...

  9. Docker命令查询

    2019独角兽企业重金招聘Python工程师标准>>> Docker命令查询 基本语法 docker [OPTIONS] COMMAND [arg...] 一般来说,Docker 命 ...

最新文章

  1. SAP PM入门系列30 - IW39 Display Orders
  2. jquery学习手记(4)元素的选择与操作
  3. 收集的yum命令博文
  4. 非对称加解密交互故事
  5. 2021抖音电商达人生态报告
  6. 两款扒站工具使用说明
  7. 仿二手商城模板html,仿转转商城APP页面模板
  8. Python实现类似局域网QQ群聊
  9. 学习:网络接口RJ45
  10. 《UNIX环境高级编程》(第3版)
  11. 投票管理系统的设计与实现(项目实现)
  12. windows各类密码搜集
  13. gg修改器修改内购_【技术分享】通过GG修改器 修改王者荣耀皮肤(美化)
  14. python3爬虫抓取链家上海租房信息
  15. js给label赋值功能
  16. Codeforces Round #702 (Div. 3)ABCEF
  17. java mathematica_Java和Mathematica交互
  18. BZOJ1003物流运输
  19. JS实现 下一个排列(下一个更大的数)
  20. 写给博客侵权者的一封信

热门文章

  1. webscraper 无代码爬虫
  2. 药一点医药软件供应商——医疗器械管理软件入库功能
  3. 下载vs后,移动windows kits文件夹(不使用快捷方式的方法)
  4. c语言 字母小游戏,详细讲解C语言单机小游戏——打字母游戏
  5. 软件UI图形界面设计常用软件
  6. C/C++语言优秀书籍清单,新手入门必看
  7. 问题 A: 沙子的质量
  8. 微信小程序签到弹窗(动画效果)
  9. 汇川PLC如何连接电脑进行数据通信和远程上下载
  10. Python入门 NUMECA计算文件处理(一)