docker相关命令使用

一,docker常用命令

1,创建容器时的命令选项
-i, –interactive 交互式
-t, –tty 分配一个伪终端
-d, –detach 运行容器到后台
-e, –env 设置环境变量
-p, –publish list 发布容器端口到主机
-P, –publish-all 发布容器所有EXPOSE的端口到宿主机随机端口
–name string 指定容器名称
-h, –hostname 设置容器主机名
–ip string 指定容器IP,只能用于自定义网络
–network 连接容器到一个网络
–mount mount 将文件系统附加到容器
-v, –volume list 绑定挂载一个卷
–restart string 容器退出时重启策略,默认no,可选值:[always|on-failure]
2,管理镜像命令
ls 			#列出镜像
build 		#构建镜像来自Dockerfile
history 	#查看镜像历史
inspect 	#显示一个或多个镜像详细信息
pull 		#从镜像仓库拉取镜像
push 		#推送一个镜像到镜像仓库
rm 			#移除一个或多个镜像
prune 		#移除没有被标记或者没有被任何容器引用的镜像
tag 		#创建一个引用源镜像标记目标镜像
export 		#导出容器文件系统到tar归档文件
import 		#导入容器文件系统tar归档文件创建镜像
save 		#保存一个或多个镜像到一个tar归档文件
load 		#加载镜像来自tar归档或标准输入
3,管理容器命令
ls 			#列出容器
inspect 	#查看一个或多个容器详细信息
exec 		#在运行容器中执行命令
commit 		#创建一个新镜像来自一个容器
cp 			#拷贝文件/文件夹到一个容器
logs 		#获取一个容器日志
port 		#列出或指定容器端口映射
top 		#显示一个容器运行的进程
stats 		#显示容器资源使用统计
stop/start/restart #停止/启动一个或多个容器
rm 			#删除一个或多个容器
prune 		#移除已停止的容器
update 		#更新容器的一些选项 TAB可查看补全支持

二,dockerfile常用指令

FROM
来自于哪个基础镜像

LABEL 
设置dockerfile标签
 
RUN
构建镜像时运行的shell命令
 
COPY
拷贝文件或者目录docker容器镜像中

ADD
解压压缩包并拷贝

ENV
设置环境变量

USER
为RUN、CMD、ENTRYPOINT执行命令指定运行用户 

EXPOSE
声明服务发布端口

 WORKDIR
为为RUN、CMD、ENTRYPOINT执行命令设置工作目录
 
CMD
一个dockerfile只能出现一次,多次只有最后一个生效
CMD ["脚本文件","执行参数","执行参数"] :exec形式,默认不支持引用变量
CMD ["sh","-c","容器中脚本文件绝对路径 $NAME"]:exec形式引用变量
CMD command param1 param2 :shell形式
 
ENTRYPOINT
一个dockerfile只能出现一次,多次只有最后一个生效
如果是可执行文件,希望运行时传参,应该使用ENTRYPOINT
与CMD用法相同,一般结合使用,用CMD给ENTRPOINT传参,传参只能使用exec形式
ENTRYPOINT ["executable","param1","param2"]
ENTRYPOINT command param1 param2

docker -t 镜像名称:版本标签 -f 指定dockerfile文件位置

Tomcat dockerfile例:

FROM docker.io/centos


ADD jdk1.8.0_191 /usr/local/java
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar

ADD apache-tomcat-8.5.47 /usr/local/tomcat
ADD ROOT /usr/loca/tomcat/webspps/ROOT
RUN chmod 755 /usr/local/tomcat/bin/startup.sh
RUN chmod 755 /usr/local/tomcat/bin/catalina.sh
RUN sed -i 's|"8080"|"8085"|' /usr/local/tomcat/conf/server.xml
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime


EXPOSE 8085

CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]

三,docker-compose常用命令

docker-compose用于单机容器编排,方便管理多容器

docker-compose up -d nginx                     #构建建启动nignx容器
docker-compose exec nginx bash            #登录到nginx容器中
docker-compose down                              #删除所有nginx容器,镜像
docker-compose ps                                   #显示所有容器
docker-compose restart nginx                   #重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v  #在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build nginx                     #构建镜像 。
docker-compose build --no-cache nginx   #不带缓存的构建。
docker-compose up -d --build			  #构建新镜像,并更新容器
docker-compose logs  nginx                     #查看nginx的日志
docker-compose logs -f nginx                   #查看nginx的实时日志
docker-compose config  -q                        #验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose events --json nginx       #以json的形式输出nginx的docker日志
docker-compose pause nginx                 #暂停nignx容器
docker-compose unpause nginx             #恢复ningx容器
docker-compose rm nginx                       #删除容器(删除前必须关闭容器)
docker-compose stop nginx                    #停止nignx容器
docker-compose start nginx                    #启动nignx容器

docker-compose.yml例:

version: '3'
services:
 nginx:
  hostname: nginx
  build:
   context: nginx
   dockerfile: Dockerfile
  ports:
   - 8022:8022
  networks:
   - vacb

 mysql:
  hostname: mysql
  environment:
    MYSQL_ROOT_PASSWORD: "pwd@123"
    MYSQL_DATABASE: "test_control"                     
    MYSQL_USER: bbs                                    
    MYSQL_PASSWORD: pwd@1234 
  build:
   context: mysql
   dockerfile: Dockerfile
  ports:
   - 3306:3306
  networks:
   - vacb
  volumes:
   - /root/vacb/mysql/my.cnf:/etc/mysql/my.cnf
   - /mysql/data/:/var/lib/mysql/
   - /mysql/logs/:/var/log/mysql/

 java:
  hostname: java
  build:
   context: ./java
   dockerfile: Dockerfile
  ports:
   - 8021:8021
  networks:
   - vacb
networks:                                  
 vacb:
  external: true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背锅攻城师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值