Docker——常用下令

[复制链接]
发表于 2026-2-7 22:53:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.Docker是做什么的?

        Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依靠包到一个可移植的容器中,然后发布到任何盛行的 Linux 呆板上,也可以实现假造化。它可以资助我们下载应用镜像,创建并运行镜像的容器,从而快速摆设应用
镜像和容器

当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不但包罗应用自己,还包罗应用运行所必要的环境、设置、体系函数库。Docker会在运行镜像时创建一个隔离环境,称为容器(container)。 镜像堆栈:存储和管理镜像的平台,Docker官方维护了一个公共堆栈。
下令解读(以MySQL摆设为例)
  1. docker run -d \
  2.   --name mysql \
  3.   -p 3306:3306 \
  4.   -e TZ=Asia/Shanghai \
  5.   -e MYSQL_ROOT_PASSWORD=123 \
  6.   mysql
复制代码
解读:

  •         docker run -d :创建并运行一个容器,-d则是让容器以配景进程运行
  •         --name mysql  : 给容器起个名字叫mysql,你可以叫别的
  •         -p 3306:3306 : 设置端口映射。

    •                 容器是隔离环境,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。
    •                 容器内端口每每是由容器内的进程决定,比方MySQL进程默认端口是3306,因此容器内端口肯定是3306;而宿主机端口则可以恣意指定,一样平常与容器内保持同等。
    •                 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口

  •         -e TZ=Asia/Shanghai : 设置容器内进程运行时的一些参数

    •                 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定
    •                 案例中,TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认暗码

  •         mysql : 设置镜像名称,Docker会根据这个名字搜索并下载镜像

    •                 格式:REPOSITORY:TAG,比方mysql:8.0,此中REPOSITORY可以明确为镜像名,TAG是版本号
    •                 在未指定TAG的环境下,默认是最新版本,也就是mysql:latest

        镜像的名称不是随意的,而是要到DockerRegistry中探求,镜像运行时的设置也不是随意的,要参考镜像的资助文档,这些在DockerHub网站大概软件的官方网站中都能找到。
        如果我们要安装别的软件,也可以到DockerRegistry中探求对应的镜像名称和版本,阅读相干设置即可。
2.Docker常见下令

                        下令
                                                阐明
                                                docker pull
                                                拉取镜像
                                                docker push
                                                推送镜像到DockerRegistry
                                                docker images
                                                检察本地镜像
                                                docker rmi
                                                删除本地镜像
                                                docker run
                                                创建并运行容器(不能重复创建)
                                                docker stop
                                                克制指定容器
                                                docker start
                                                启动指定容器
                                                docker restart
                                                重新启动容器
                                                docker rm
                                                删除指定容器
                                                docker ps
                                                检察容器
                                                docker logs
                                                检察容器运行日记
                                                docker exec
                                                进入容器
                                                docker save
                                                生存镜像到本地压缩文件
                                                docker load
                                                加载本地压缩文件到镜像
                                                docker inspect
                                                检察容器详细信息
                       

增补:
默认环境下,每次重启假造机我们都必要手动启动Docker和Docker中的容器。通过下令可以实现开机自启:
  1. # Docker开机自启
  2. systemctl enable docker
  3. # Docker容器开机自启
  4. docker update --restart=always [容器名/容器id]
复制代码
演示阐明:(以Nginx为例)
  1. # 第1步,去DockerHub查看nginx镜像仓库及相关信息
  2. # 第2步,拉取Nginx镜像
  3. docker pull nginx
  4. # 第3步,查看镜像
  5. docker images
  6. # 结果如下:
  7. REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
  8. nginx        latest    605c77e624dd   16 months ago   141MB
  9. mysql        latest    3218b38490ce   17 months ago   516MB
  10. # 第4步,创建并允许Nginx容器
  11. docker run -d --name nginx -p 80:80 nginx
  12. # 第5步,查看运行中容器
  13. docker ps
  14. # 也可以加格式化方式访问,格式会更加清爽
  15. docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
  16. # 第6步,访问网页,地址:http://虚拟机地址
  17. # 第7步,停止容器
  18. docker stop nginx
  19. # 第8步,查看所有容器
  20. docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
  21. # 第9步,再次启动nginx容器
  22. docker start nginx
  23. # 第10步,再次查看容器
  24. docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
  25. # 第11步,查看容器详细信息
  26. docker inspect nginx
  27. # 第12步,进入容器,查看容器内目录
  28. docker exec -it nginx bash
  29. # 或者,可以进入MySQL
  30. docker exec -it mysql mysql -uroot -p
  31. # 第13步,删除容器
  32. docker rm nginx
  33. # 发现无法删除,因为容器运行中,强制删除容器
  34. docker rm -f nginx
复制代码
下令别名

给常用Docker下令起别名,方便我们访问:
  1. # 修改/root/.bashrc文件
  2. vi /root/.bashrc
  3. 内容如下:
  4. # .bashrc
  5. # User specific aliases and functions
  6. alias rm='rm -i'
  7. alias cp='cp -i'
  8. alias mv='mv -i'
  9. alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
  10. alias dis='docker images'
  11. # Source global definitions
  12. if [ -f /etc/bashrc ]; then
  13.         . /etc/bashrc
  14. fi
复制代码
然后,实行下令使别名收效
  1. source /root/.bashrc
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表