docker学习记录

启动、开机自启动

systemctl start docker
systemctl enable docker

查看版本

docker version

查看docker启动状态

systemctl status docker

卸载

1、查询docker安装过的包

yum list installed | grep docker

2、删除安装包

yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y

3、删除镜像/容器等

rm -rf /var/lib/docker

docker镜像命令

查看镜像

docker images

搜索镜像

docker search 镜像名

拉取镜像

docker pull 镜像名 
docker pull 镜像名:tag

删除镜像

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

强制删除镜像

docker image rm 镜像名称/镜像ID

保存镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

加载镜像

docker load -i 镜像保存文件位置

docker容器命令

查看运行的容器

docker ps

查看所有的容器

docker ps -a

运行一个容器

进入到容器内部

 docker exec -it 容器id /bin/sh

删除所有容器

docker rm `docker ps -a -q`

查看容器日志

docker logs [选项] 容器名    
[
-f		#动态查看
-t		#显示时间戳
--tail 20	#显示最近的20行
]

docker管理命令

参数说明
builder管理构建
config码头工人管理配置
container管理容器
engine管理docker引擎
image管理镜像
network管理网络
node管理群节点
plugin管理插件
secret管理码头工人的秘密
service管理服务
stack管理码头工人栈
swarm管理群
system管理码头工人
trust管理Docker映像上的信任
volume管理卷

命令

	attach   将本地标准输入、输出和错误流附加到正在运行的容器中
	
	build    从Dockerfile构建一个映像
	
	commit   从容器的更改中创建一个新映像
	
	cp     在容器和本地文件系统之间复制文件/文件夹
	
	create   创建一个新容器
	
	diff    检查容器文件系统上文件或目录的更改
	
	events   从服务器获取实时事件
	
	exec    在正在运行的容器中运行命令
	
	export   将容器的文件系统导出为tar存档文件
	
	history   显示图像的历史
	
	images   图片列表
	
	import   从tarball导入内容以创建文件系统映像
	
	info    显示整个系统的信息
	
	inspect   返回Docker对象的底层信息
	
	kill    杀死一个或多个正在运行的容器
	
	load    从tar存档或STDIN加载图像
	
	login    登录到Docker注册表
	
	logout   从Docker注册表注销
	
	logs    获取容器的日志
	
	pause    暂停一个或多个容器中的所有进程
	
	port    列出容器的端口映射或特定映射
	
	ps     列表容器
	
	pull    从注册表中提取映像或存储库
	
	push    将映像或存储库推入注册表
	
	rename   重命名一个容器
	
	restart   重新启动一个或多个容器
	
	rm     移除一个或多个容器
	
	rmi     删除一个或多个图像
	
	run     在新容器中运行命令
	
	save    将一个或多个图像保存到tar存档文件(默认情况下流到STDOUT)
	
	search   在Docker集线器中搜索图像
	
	start    启动一个或多个停止的容器
	
	stats    显示容器资源使用统计数据的实时流
	
	stop    停止一个或多个正在运行的容器
	
	tag     创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
	
	top     显示容器的运行进程
	
	unpause   在一个或多个容器中暂停所有进程
	
	update   更新一个或多个容器的配置
	
	version   显示Docker版本信息
	
	wait    阻塞,直到一个或多个容器停止,然后打印它们的退出代

Dockerfile

#分为四部分:
基础镜像信息    维护者信息    镜像操作指令   容器启动时执行的指令
======================================
FROM   设置镜像使用的基础镜像
MAINTAINER   设置镜像的作者
RUN      编译镜像时运行的脚本
CMD      设置容器的启动命令
LABEL    设置镜像的标签
EXPOESE  设置镜像暴露的端口
ENV      设置容器的环境变量
ADD      编译镜像时复制文件到镜像中
COPY     编译镜像时复制文件到镜像中
ENTRPOINT   设置容器的入口程序
VOLUME    设置容器的挂载卷
USER      设置运行RUN CMD ENTRYPOINT的用户名
WORKDOR   设置RUN ENTRPOINT COPY ADD指令的工作目录
ARG       设置编译镜像时加入的参数
ONBUILD   设置镜像的ONBUILD指令
STOPSIGNAL  设置容器的退出信号量
实例:将eureka-server.0.0.1.jar文件制作为镜像的dockerfile
=====================
from java:8
#作者
MAINTAINER author

VOLUME /tmp
#
ADD eureka-server-0.0.1-SNAPSHOT.jar  eureka-server.jar
#容器暴露端口
EXPOSE 8761
#自定义环境变量
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone
#应用启动命令
RUN bash -c 'touch /eureka-server.jar'
ENTRYPOINT [ "java","-Xmx512m","-Xms512m","-jar","eureka-server.jar","--spring.profiles.active=ht" ]
===================

将Dockerfile文件和jar包放在同一位置,执行命令

docker  build  -t  eureka-server:1.0  .

打包镜像为一个文件

#实例,保存nginx镜像为base.img文件
docker save nginx   > base.img

#加载镜像文件到docker
docker load -i base.img

docker-compose.yaml实例

version: '2.4'  #docker-compose版本

services:
  nginx: # 服务名称
    image: nginx:latest
    container_name: nginx   #容器名称
    networks:
      tg_net:
        ipv4_address: 172.18.0.2
    ports:
      - 80:80 # 暴露端口
    volumes: # 挂载
      - /home/data/nginx/html:/usr/share/nginx/html
      - /home/data/nginx/conf:/etc/nginx/ngixn.conf
      - /home/data/nginx/log:/var/log/nginx
    restart: always
    privileged: true # 解决nginx的文件调用权限问题

  mysql:
    image: mysql:5.7.34
    container_name: mysql
    networks:
      tg_net:
        ipv4_address: 172.18.0.3
    ports:
      - 3306:3306
    restart: always
    privileged: true # 解决nginx的文件调用权限问题
    environment: # 指定用户root的密码
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=ht654321
    volumes:
      - /home/data/mysql/data:/var/lib/mysql
      - /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf
      - /home/data/mysql/log:/var/log/mysql
      -  ./db:/docker-entrypoint-initdb.d  #初始化脚本
    command: --default-authentication-plugin=mysql_native_password  #解决外部无法访问

  redis:
    image: redis:4.0.9
    container_name: redis
    networks:
      tg_net:
        ipv4_address: 172.18.0.4
    ports:
      - 6379:6379
    volumes:
      - /home/data/redis/data:/data
      - /home/data/redis/conf/redis.conf:/redis.conf
    restart: always
    privileged: true
    command: redis-server

  eureka-server:
    image: eureka-server:1.0
    container_name: eureka-server
    hostname: eureka-server
    restart: always
    privileged: true
    volumes:
      - ./logs/eureka-server:/home/logs/app/eureka-server
    environment:
      - SPRING_PROFILES_ACTIVE=ht
    networks:
      tg_net:
        ipv4_address: 172.18.0.5
    ports:
      - 8761:8761

networks:
    test_net: 
      ipam:
        config:
          - subnet: 172.18.0.0/16
          - gateway: 172.18.0.1
#运行docker-compose编排
#在docker-compose.yaml文件路径下执行命令

docker-compose   up   -d  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值