一、基础命令一览表
命令 | 解释 | 示例 | 特别说明 |
---|---|---|---|
docker search 镜像名称 | 在仓库中搜索镜像 | docker search anaconda | - |
docker pull 镜像名称:镜像标签 | 从仓库拉取镜像 | docker pull centos:centos7 | - |
docker build -t 镜像名称. | 创建镜像 | - | 适用于使用Dockerfile构建镜像的情况 |
docker images | 查看本地镜像 | - | - |
docker ps -a | 查看容器的运行信息 | - | 若只查看运行中的容器,可以不加参数-a |
docker run -itd --name 容器名称 镜像名称:镜像标签 | 创建一个新的容器并运行一个命令 | - | - |
-p 宿主机端口:容器内端口 | 指定端口运行 | - | - |
-v 宿主机绝对路径:容器内绝对经 | 挂载数据卷 | - | - |
–restart=always | 指定重启策略 | - | - |
docker start 容器ID | 启动容器 | - | - |
docker restart 容器ID | 重启容器 | - | - |
docker stop 容器ID | 停止容器 | - | - |
docker exec -it 容器ID /bin/bash | 进入容器 | - | - |
docker save -o 名字.tar 镜像id | 打包镜像 | - | - |
docker load -i 名字.tar | 加载镜像 | - | load加载方式对应save打包方式 |
docker tag 镜像id 新名字:新标签 | 修改镜像标签 | - | - |
docker commit 容器id 新镜像名 | 将容器打包为镜像 | - | 注意:挂在了数据卷的容器,并不会将数据卷的内容一并打包 |
docker cp 宿主机文件 容器名:容器内绝对路径 | 从宿主机拷贝文件到容器 | - | - |
docker inspect 容器id | 查看容器信息 | docker inspect 容器id | grep Mounts -A 20 |
docker rename 旧名字 新名字 | 修改容器名字 | - | - |
二、部分命令参数详解
1.docker run :创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
参数 | 说明 | 使用频率 |
---|---|---|
-a | 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 | 低 |
-d | 后台运行容器,并返回容器ID | 高 |
-i | 以交互模式运行容器,通常与 -t 同时使用 | 高 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 | 高 |
–name=“容器名称” | 为容器指定一个名称 | 高 |
–expose=[] | 开放一个端口或一组端口 | 高 |
–volume or -v | 绑定一个卷 | 高 |
–restart | 重启策略 | 高 |
-p | 指定端口映射,格式为:主机(宿主)端口:容器端口 | 高 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口 | 低 |
–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=[] | 添加链接到另一个容器 | 按需 |
2.容器的重启策略
docker run --restart
代码 | 释义 |
---|---|
no | 默认策略,在容器退出时不重启容器 |
on-failure:n | 在容器非正常退出时(退出状态非0),才会重启容器,最多重启n次,默认为1 |
always | 在容器退出时总是重启容器 |
unless-stopped | 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器 |
如果在创建容器的时候,忘记添加参数--restart
,那么可以用docker container update --restart=always 容器名字
添加
3.常用的创建服务命令
1.创建nginx容器
docker run -itd
-p 80:80
-v /my_docker/web:/data/web
-v /my_docker/nginx.conf:/etc/nginx/nginx.conf
--restart=always
--name party_vue2106
dd34e67e3371
2.创建postgresql数据库
docker run -itd
--name pg0910_contain
-e POSTGRES_USER=postgres
-e POSTGRES_DB=cnki_2110_legislation_20210910
-e POSTGRES_PASSWORD=password
-p 5432:5432
-v /data/postgres_data:/var/lib/postgresql/data
postgres
3.创建redis容器
docker run -itd
--restart=always
--log-opt max-size=100m
--log-opt max-file=2
-p 6379:6379
--name myredis7
-v /my_docker/redis/redis.conf:/etc/redis/redis.conf
-v /my_docker/redis/data:/data redis:latest
配置文件下载路径:https://redis.io/docs/manual/config/
进入容器命令:
docker exec -it java_redis redis-cli
说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–log 日志相关
–name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分(必须为绝对路径),:后表示容器部分。
/opt/myredis/redis.conf:/etc/redis/redis.conf
挂载我的配置文件
/opt/myredis/data:/data
挂载redis的数据路径
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 指定配置文件的路径。
/etc/redis/redis.conf指的是容器内的文件路径,对应的宿主机的路径要根据挂载卷的路径找到。我的宿主机路径就是/opt/myredis/redis.conf
–appendonly yes 开启redis 持久化
–requirepass rootroot 设置密码为rootroot
4.创建elasticsearch容器
docker run -itd
--name elasticsearch
-p 9200:9200
-p 9300:9300
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"
elsticsearch:latest
5.创建kibana容器
(1)先使用以下命令查看 es 在容器中的 ip 地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
(2)启动kibana
docker run -itd
--name kibana
-p 5601:5601
--net "es所在的网络"-
-link elasticsearch
-e "ELASTICSEARCH_URL=http://172.18.0.2:9200" kibana