有用且常用的Docker命令

一、基础命令一览表

命令解释示例特别说明
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 容器idgrep 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值