Docker官方命令文档

1 docker里的几个概念:

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。就行maven的仓库一样.(国外的中央仓库, 国内的如网易蜂巢/daoCloud),其中daoCloud不需要登录(https://hub.daocloud.io/)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器 可以被创建、启动、停止、删除、暂停等。

2. 安装docker

(命令可以从https://www.runoob.com/docker/centos-docker-install.html复制)

(1) 下载docker的依赖环境

    yum install -y yum-utils  device-mapper-persistent-data lvm2 

(2)设置docker的镜像源。

   yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3) 安装docker

  yum makacache fast
  yum -y install docker-ce

(4)启动docker并设置开机自启动

   # 启动:
   systemctl start docker

   # 开机自动启动:
   systemctl enable docker

(5)测试docker是否安装成功

    docker run hello-world

3.镜像

查看镜像

docker image ls 
docker images
# 查看(无用)镜像
docker image ls -f dangling=true

下载镜像

docker pull nginx[:tag]
docker pull nginx:1.20

删除镜像

# 删除无用镜像
docker rmi $(docker images -q -f dangling=true)

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

# 关键字删除镜像,其中doss-api为关键字
docker rmi --force [-f] $(docker images | grep doss-api | awk '{print $3}')

保存镜像

docker image save
docker images

查看镜像历史

docker image history [镜像名称]
docker images

4.容器

查看正在运行的容器

docker ps [-qa]          # ps是 process status的缩写
#-a 查看全部, 包括没有运行的容器
#-q 只查看容器的标识, 不查看其他信息

docker ps -a

运行容器

docker run 镜像的IMAGE ID | 镜像名称[:tag]
# 常用参数
#    -d      后台运行
#    -p      宿主机linux的端口: 容器的端口     为了映射当前linux的端口和容器的端口
#    --name  指定容器名称
#    --rm    关闭容器后,自动销毁

docker run -d -p 8081:8080 --name tomcat a0fdb

# 解释:运行上命令后就可以在浏览器中访问http://192.168.xx.xx:8081/可以出现tomcat了

# 守护进程(没有前台运行程序时使用)
docker run -dit -p 8081:8080 --name tomcat a0fdb

# 直接启动并执行一段指令
docker run --rm -it -v /root/test/calendar-notepad-vue-dev:/calendar --name node_c1 node /bin/sh -c "cd /calendar && npm install && npm run build"

停止容器

docker stop [idname]
docker stop myTest

# 关闭所有的容器(解释:关闭所有列出的容器)
docker stop $(docker ps -a -q)

启动容器

docker start [idname]
docker start myTest

删除容器

docker rm [id或name]
docker rm myTest

进入容器

注意默认容器内linux包是最小安装。只拥有最基本的命令
exit,不会导致容器的停止

docker exec -it 容器 ID (Names) bash

docker exec -it tomcat1 bash # 进入容器名称叫 tomcat1,一般:/bin/bash 或者 /bin/sh
echo ' qfnj-weixin'>>index.jsp # 对容器内的 index.jsp 进行字符串追加

# 进入容器并运行shell命令
docker exec -it tomcat1 bash -c "cd app"

注意: -i -t 参数 docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。 只用 -i 参数时,由于没有分配伪终端,界
面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。 当 -i -t 参数一起使用时,则可以看到我
们熟悉的 Linux 命令提示符。

交换文件

docker cp [OPTIONS] CONTAINER:PATH LOCALPATH    # 容器中 复制到 宿主机
docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH  # 宿主机 复制到 容器中

# 宿主机复制一个图片到容器中:将png图片复制到了容器指定目录下
docker cp guoweixin.png tomcat2:/usr/local/tomcat/webapps/ROOT

# 将容器内的index.jsp 复制出来,修改再复制回去
docker cp tomcat2:/usr/local/tomcat/webapps/ROOT/index.jsp /root

查看日志

docker logs 容器名称/ID
docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam

# 说明:
# --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 
# -f : 查看实时日志 
# -t : 查看日志产生的日期 
# -tail=10 : 查看最后的10条日志 
# qfjy_exam : 容器名称

5. 数据卷

#1 创建数据卷
docker volume create 数据卷名称

# 创建数据卷之后,默认会存放到目录: /var/lib/docker/volume/数据卷名称/_data目录下
#2 查看数据卷
docker volume inspect 数据卷名称

#3 查看全部数据卷信息
docker volume ls

#4 删除数据卷
docker volume rm 数据卷名称

#5 应用数据卷
#5.1 当你映射数据卷时,如果数据卷不存在,Docker会帮你自动创建
docker run -v 数据卷名称:容器内路径 镜像ID

#5.2 直接指定一个路径作为数据卷的存储位置
docker run -v 路径:容器内部的路径 镜像ID

6. 打包镜像

docker commit -a "Sun" -m "a new image" [容器名称或id] [打包的镜像名称]:[标签]

常用OPTIONS说明:

  • -a :提交的镜像作者
  • -c :使用Dockerfile指令来创建镜像
  • -m :提交时的说明文字
  • -p :在commit时,将容器暂停
作者:sun  创建时间:2021-12-05 10:50
最后编辑:sun  更新时间:2023-02-22 13:40