docker 命令

docker

docker镜像实际由一层一层的文件系统组成,这种层级的文件系统就是unionFS(联合文件系统)

为什么分层?可以理解为程序的解耦,实现程序的复用

镜像最底层是bootfs(boot file system)引导文件系统和Linux一样,有boot加载器和内核,所以镜像都是简易版的Linux

容器则为rootfs,容器可以理解为继承了镜像的子类

  • 服务器重启后,docker启动:systemctl daemon-reload

    systemctl restart docker.service

 

image

  • docker images 查看所有镜像   -q 只查看IMAGE ID  ;-a所有的
  • docker search --limit 5 redis  查询redis镜像,--limit 5 只查询五个出来,默认25个
  • docker pull mysql  拉取mysql镜像,docker pull mysql:8.0指定版本,默认最新的 mysql:latest
  • docker rmi  删除镜像,ID 或者名字,-f 强制删除
  • docker image prune 删除所有的虚悬镜像(none  none的镜像)
  • docker system df  查询镜像、容器有多少。类似linux的df -h
  • docker build -t certificate_api:1.0.0 . 构建dockerfile,注意最后有一个点
  • docker tag ubuntu_yaohy:1.1 124.220.1.37:5000/1.2  给镜像打标签,通常再推送镜像到仓库前操作,仓库地址/版本号
  • docker push 124.220.1.37:5000/1.2  推送镜像到仓库

container

启动容器:

  • docker run -d -p 6378:6379 --name redis_yaohy_000 redis:6.2.6    -d后台运行,-p绑定端口
  • docker run -it --name ubuntu-test ubuntu /bin/bash
  • docker stop/start/restart <容器 ID>  启动已关闭的容器
  • 按ctrl + p + q键,退出容器
  • docker cp emqx:/opt/emqx/etc /home/emqx/  复制容器文件到宿主机,如果一开始就用数据卷,会导致加载不了配置数据

重新进入启动容器的命令行:

  • docker exec -it <容器 ID> /bin/bash
  • docker attch (这个退出会停止容器)

查看容器日志:

  • docker logs  --tail  10 <容器  ID/名> 只查看10条
  • docker logs -f <容器  ID/名>  实时打印

容器操作:

  • docker container prune 可以清理掉所有处于终止状态的容器。
  • docker cp <容器 ID>:/opt/data/test.txt /opt/  复制容器中的文件到外面
  • docker top <容器 ID>  类似linux的top
  • docker export a7d31c762cfe > abcd.tar      导出容器为tar包
  • cat abcd.tar | docker import - ubuntu_im     将导出容器,导入为镜像
  • docker commit -a 'yaohy' -m 'install vim' a7d31c762cfe ubuntu_yaohy:1.0 将容器提交为镜像
  • docker update --restart=always 容器ID  修改容器的启动参数

dockerfile

FROM java:8

MAINTAINER yaohy

VOLUME /data/server/

ADD certificate-api.jar  certificate-api-docker.jar

RUN bash -c 'touch /certificate-api-docker.jar'

ENTRYPOINT ["java","-jar","certificate-api-docker.jar","--spring.profiles.active","dev"]

EXPOSE 8900

构建dockerfile,注意最后有一个点:docker build -t <image_name>:1.0.1 . 

 

 

docker ubuntu 安装vim
apt-get update 更新包管理工具
apt-get install -y vim 安装vim

 


本地仓库 ,配置
http://127.0.0.1:5000/v2/_catalog

docker 默认不允许http的方式进行镜像推送,以下配置取消限制 异常为:http: server gave HTTP response to HTTPS client
vim /etc/docker/daemon.json
"insecure-registries":["124.220.xx.xxxx:5000"]

 

docker启动redis,使用数据卷和加载配置文件
docker run --name docker_node1
-v /data/docker/redis/node1/:/data
--privileged=true
-p 6381:6379
redis:6.2.6
redis-server /data/redis.conf
#配置文件中路径用全路径
比如:logfile /data/redis.log


#由于docker容器在启动时,需要任务在前台运行,否则会启动后立即退出,因此导致redis容器启动后立即退出问题
#否则异常:docker启动redis报错 oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
修改配置redis.conf:daemonize no

 

docker启动mysql

docker run -d --name mysql_master -p 3306:3306 --privileged=true
-e MYSQL_ROOT_PASSWORD=yaohy123456
-v /tmp/docker/mysql/log/master:/var/log/mysql
-v /tmp/docker/mysql/data/master:/var/lib/mysql
-v /tmp/docker/mysql/conf/master:/etc/mysql/my.cnf
mysql:8.0.27

posted @ 2022-08-25 09:16  LinYhy  阅读(34)  评论(0)    收藏  举报