Docker命令

docker相关概念

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker命令

1、进程相关命令

进程相关命令是用来启动或停止docker服务的

bash 复制代码
systemctl start docker    #启动docker服务
systemctl stop docker     #停止docker服务 
systemctl restart docker  #重启docker服务 
systemctl status docker   #查看docker服务状态
systemctl enable docker   #开机启动docker服务
systemctl disable docker  #关闭开机启动docker服务

2、 镜像相关命令

a、配置镜像加速器

首先登陆阿里云,点击控制台,然后再点击左边的像三字一样的图标,再点击产品与服务,在输入关键字地方搜索"镜像",会显示容器镜像服务,点击"容器镜像服务",在左侧的最下方有镜像中心(镜像加速器),点击镜像加速器,复制如下代码到linux执行即可

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://58xnm6gw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

b、查看镜像

bash 复制代码
[root@localhost ~]#docker images    #查看本地所有的镜像    
[root@localhost ~]#docker images --q # 查看所有镜像的id

c、搜索镜像

bash 复制代码
docker search 镜像名称
[root@localhost ~]#docker search  redis  #从网络中查找redis镜像

d、拉取镜像

从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本,如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。 https://hub.docker.com/_/docker

bash 复制代码
docker pull 镜像名称:版本号
[root@localhost ~]#docker pull redis:5.0 
[root@localhost ~]#docker pull centos:7 
[root@localhost ~]#docker pull mysql:8.0.25 
[root@localhost ~]#docker pull tomcat:8
[root@localhost ~]#docker pull nginx

如果拉取镜像报超时,执行如下命令:

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

e、删除镜像

删除本地镜像

bash 复制代码
docker rmi 镜像id
docker rmi redis  #删除dokcer中下载的redis镜像

3、 容器相关命令

a、查看容器
shell 复制代码
[root@localhost ~]#docker ps       # 查看正在运行的容器
[root@localhost ~]#docker ps --a    # 查看所有容器 (包括没有运行的容器)
b、创建并启动容器
shell 复制代码
docker run -it | -id --name=容器名称 镜像名称:版本 /bin/bash
[root@localhost ~]#docker run -it --name=tomcat8080 tomcat:8 /bin/bash   #创建并自动进入容器,当输入exit 退出容器并回到宿主机
[root@localhost ~]#docker run -id --name=tomcat8080 tomcat:8				 #创建容器 但不进入容器

参数说明:

  • -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后(执行命令exit),容器自动关闭

  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用

  • -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭

  • /bin/bash 这是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器就会退出。这个就表示启动容器后启动bash。默认会启动一个bash,可以忽略不写

  • -p:将linux服务器的端口与dokcer容器的端口进行映射

bash 复制代码
  docker -id  -p  linux端口:docker容器端口 --name=tomcat8080 tomcat:8
  eg:
  docker -id  -p  8080:8080 --name=tomcat8080 tomcat:8

设置容器自动启动

  • 启动时加--restart=always
bash 复制代码
  docker run -tid --name 容器名称 -p 8081:8080 --restart=always -v 你的镜像挂载名称
  
  restart参数说明:
      no             不自动重启容器. (默认value)
      on-failure     容器发生error而退出(容器退出状态不为0)重启容器
      unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
      always         在容器已经stop掉或Docker stoped/restarted的时候才重启容器

如果项目非首次启动,则使用update更新镜像实现自动启动**

bash 复制代码
  docker update --restart=always 容器名称
c、进入容器
shell 复制代码
docker exec 参数  /bin/bash      #进入容器  注意 此处的/bin/bash不能省略
[root@localhost ~]#docker -id --name=c2 centos:7
[root@localhost ~]#docker exec -it c2 /bin/bash
[root@localhost ~]#exit         #此时容器还是在运行着的
d、启动容器相关命令
bash 复制代码
docker start  容器名    #启动容器
docker restart 容器名   #重启容器
docker stop   容器名    #停止容器
docker rm 容器名        #删除容器
docker inspect 容器名称  #查看容器名称
docker logs --tail 行数 -f  容器名   #查看某个容器日志
eg:
 docker logs --tail  300 -f tomcat  #查看某个容器末尾300行的日志内容
e、docker容器安装命令
bash 复制代码
apt-get  update # 更新apt网络组件
apt-get  -y install net-tools  # 安装net-tools组件
apt -y install vim* #安装vim编辑器
apt -y install vi* #安装vi编辑器
f、用于容器与主机之间的数据拷贝
bash 复制代码
docker cp 宿主机数据据 容器名:容器中的路径
eg:
docker cp /root/index.html tomcat:/usr/local/tomcat/webapps/hello/

将容器tomcat的/usr/local/tomcat/webapps/hello目录拷贝到主机的/root/hello目录中
docker cp  tomcat/usr/local/tomcat/webapps/hello:/root/hello/
相关推荐
Elastic 中国社区官方博客9 分钟前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
10mAh25 分钟前
【Linux】CPU 100% 怎么排查?——top、pidstat、jstack 到线程定位实战
linux·运维·服务器
LRL_32 分钟前
深入浅出 Kubernetes 控制器:Deployment 与 StatefulSet 核心区别全景图
云原生·容器·kubernetes
!chen42 分钟前
客户环境 Nginx 配置流式报表与超时排查
运维·nginx
起名真的太难了1 小时前
Docker 项目部署
docker·容器·eureka
狼与自由2 小时前
docker 安装milvus
docker·milvus
KIZIFLOW北泽五金2 小时前
液压系统压力损失怎么降?成因分析与减损实操方案
运维·自动化·新媒体运营·产品运营·流量运营·用户运营·内容运营
介拙2 小时前
Zabbix 7.0 从装到告警触发,我踩了这些坑
运维
爱吃提升2 小时前
VMware虚拟机迁移系统磁盘完整教程(VMware Workstation17)
linux·运维·服务器
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 制作 Docker 镜像 阅读笔记 43
spring boot·笔记·docker