尧图精选

docker入门笔记(基础版)

🕒 发布时间:2026/9/3 12:37:22 📁 来源:尧图网络
镜像命令# 查看docker概要信息dockerinfo# 列出本地主机上的镜像dockerimagesdockerimages-a# 查看远程库的镜像dockersearch xx# 下载镜像在这里插入代码片dockerpull xxdockerrmi xxdockerrmi-fxx# 查看镜像/容器/数据卷所占的空间dockersystemdfdocker的虚悬镜像:仓库名、标签都是的镜像容器命令# 新建启动容器dockerrun[options]images[command][arg...]--name为容器指定一个名称-ddaemon 启动守护式容器(后台运行)-iinteractive 以交互模式运行容器-ttty为容器重新分配一个伪输入终端 it通常一起使用-p端口 例如dockerrun-itubuntu /bin/bash# 列出当前正在运行的容器dockerps# 列出所有的的容器dockerps-a# 列出所有的容器名dockerps-q# 重新启动已停止的容器dockerstart xx# 重启容器dockerrestart xx# 停止容器dockerstop xx# 强制停止容器dockerkillxx# 删除已停止的容器dockerrmxx# 强制删除容器dockerrm-fxx# 例如删除所有容器dockerrm-f$(dockerps-a-q)# 列出日志dockerlogs xx# 查看容器内运行的进程dockertopxx# 查看容器内部运行细节dockerinspect xx# 进入运行的容器并以命令行交互dockerexec-itxx /bin/bash(这样会在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止)dockerattach xx(这样会直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止)# 将文件从容器拷贝到主机dockercpxx:容器内路径 目的主机路径# 导出导入容器(export导出容器的内容流作为一个tar归档文件,import操作为export的反操作)# 导出dockerexportxx文件名.tar# 导入catxx.tar|dockerimport- 镜像用户/镜像名:镜像版本号退出容器run 进去容器,exit退出,容器停止run进去容器,ctrlpq退出,容器不停止UnionFS(联合文件系统)是一种分层、轻量级并且高性能的文件系统,对文件系统的修改作为一次提交来一层层的叠加.好处:复用.docker 镜像加载原理bootfs (boot file system)主要包含bootloader和kernel,是docker镜像的最底层,bootloader主要引导和加载kernel,boot加载完成之后整个内核都在内存中.rootfs(root file system)在bootfs之上,包含典型的linux的/dev,/bin等目录和文件,rootfs就是各种不同的操作系统的发型版,比如ubuntu,centos.commit# 更新包管理工具apt-getupdate# 安装vimapt-getinstallvim# commit 新镜像dockercommit-m提交的描述信息-a作者xx 目标镜像名:[标签名]# 例如dockercommit-madd vim -ayaofcbface5f slash/ubuntu:1.3push到阿里云# 步骤如下$dockerlogin--username阿里云账号 registry.cn-hangzhou.aliyuncs.com $dockertag[ImageId]registry.cn-hangzhou.aliyuncs.com/ruoyi-exec/mynginx:[镜像版本号]$dockerpush registry.cn-hangzhou.aliyuncs.com/ruoyi-exec/mynginx:[镜像版本号]搭建私服docker resitry# 下载registrydockerpull registry# rundockerrun-d-p5000:5000-v/slash/myregistry/:/tmp/registry--privilegedtrue registry# curl验证私服库上有什么镜像(ip为docker的机器的ip)curl-XGEThttp://ip:镜像端口(例如上面的5000)/v2/_catalog# 将docker images改为符合私服的名称规范,例如:dockertag mynginx:1.1192.168.1.123:5000/myngnix:1.1# docker 默认不允许http方式推送镜像,通过配置取消这个限制,就是更改docker这个软件的配置,例如registry-mirrors:[https://djq9mxnw.mirror.aliyuncs.com],# 只增加下面这一行即可insecure-registries:[192.168.1.123:5000]# 若不生效可重启docker# push镜像到私服dockerpush192.168.1.123:5000/myngnix:1.1dockerpull192.168.1.123:5000/myngnix:1.1数据卷docker挂载主机目录访问出现permission:denied ,可在挂载目录后加 --privilegedtrue挂载目录后删除docker容器后不会删除挂载的数据卷rw:读写(默认)read only 只可读# 容器卷的继承和共享(父容器就是之前启动过的容器,不管它现在是否在运行都可以继承)dockerrun-it--privilegedtrue --volumes-from 父容器--name容器名 镜像安装mysql# 我电脑是苹果arm架构的芯,所以只能装8dockerpull mysql:8# 在conf文件夹下新建my.cnf文件,目的是统一编码,内容如下[client]default-character-setutf8mb4[mysqld]socket/var/lib/mysql/mysql.sock collation_serverutf8mb4_general_cicharacter_set_serverutf8mb4#运行dockerdockerrun-d-p3306:3306--privilegedtrue\-v/Users/yaoqiang/app/data/mysql/log:/var/log/mysql\-v/Users/yaoqiang/app/data/mysql/data:/var/lib/mysql\-v/Users/yaoqiang/app/data/mysql/conf:/etc/mysql/conf.d\-eMYSQL_ROOT_PASSWORDroot\--namemysql mysql:8# 查看mysql编码show variables likecharacter%如果删除容器以后,重新新建容器挂载目录不变的话,数据还在如果删了容器后新建启动失败,把data目录下的mysql.sock删了就行安装redis# 拉镜像dockerpull redis:6.0.8# 主机新建文件夹data和文件redis.conf,redis.conf的内容去官网下载后粘进去# 启动redisdockerrun-d-p6379:6379--namemyredis--privilegedtrue\-v/Users/yaoqiang/app/data/redis/data:/data\-v/Users/yaoqiang/app/data/redis/redis.conf:/etc/redis/redis.conf\redis:6.0.8\redis-server /etc/redis/redis.conf安装nginx# 拉镜像dockerpull nginx:latest建好文件夹和各种文件# nginx.conf内容如下user nginx;worker_processes1;worker_rlimit_nofile65535;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events{use epoll;worker_connections65535;}http{include /etc/nginx/mime.types;default_type application/octet-stream;log_format main$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;access_log /var/log/nginx/access.log main;charset UTF-8;client_max_body_size 300m;sendfile on;#tcp_nopush on;keepalive_timeout60;gzipon;include /etc/nginx/conf.d/*.conf;}# default.conf内容如下#upstream sisafezuul {# server 192.168.11.4:8080 max_fails2 fail_timeout30s;#}#server {# listen 80;# server_name sietsafe.ecej.com;# client_max_body_size 10M;# rewrite ^(.*)$ https://$host$1 permanent;#}#server {# listen 443 ssl;# server_name etsafeadm.guizhou001.cn;## ssl_certificate cert/etsafeadm.guizhou001.cn.pem;# ssl_certificate_key cert/etsafeadm.guizhou001.cn.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;## ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location ~* /openapi {# proxy_pass http://127.0.0.1:9999;# }# location ~* /safety {# proxy_pass http://127.0.0.1:9999;# }# location / {# root website/console;# index index.html;# }# }upstream distributedLock{server10.31.1.36:10010;server10.31.1.36:10086;}server{listen80;server_name localhost;location /{proxy_pass http://distributedLock;}location /rewrite{rewrite/http://127.0.0.1:8888/break;}location /mickey.html{root /usr/share/nginx/html/mickey;}#location ~* .(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css|eot|svg|ttf|woff)$ {# index index.htm index.html;# root /data/nfsdata/website/official;#}#location / {# index index.htm index.html index.jsp;# proxy_pass http://sisafezuul;#}#location / {# root /usr/share/nginx/html;# index index.html index.htm;#}}# html文件夹下新建 index.html,内容如下!DOCTYPE htmlhtmlheadtitleWelcome to nginx!/titlestylehtml{color-scheme: light dark;}body{width: 35em;margin:0auto;font-family: Tahoma, Verdana, Arial, sans-serif;}/style/headbodyh1Welcome to nginx!/h1pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./ppFor online documentation and support please refer toahrefhttp://nginx.org/nginx.org/a.br/Commercial support is available atahrefhttp://nginx.com/nginx.com/a./ppemThank youforusing nginx./em/p/body/html# 启动命令dockerrun-d-p80:80--privilegedtrue\-v/Users/yaoqiang/app/data/nginx/html:/usr/share/nginx/html\-v/Users/yaoqiang/app/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf\-v/Users/yaoqiang/app/data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf\-v/Users/yaoqiang/app/data/nginx/logs:/var/log/nginx\--namenginx nginx安装rabbitmq# 拉镜像dockerpull rabbitmq# 启动容器dockerrun-d--namerabbitmq-p5672:5672-p15672:15672\-v/Users/yaoqiang/app/data/rabbitmq:/var/lib/rabbitmq\--hostnamemyRabbit\-eRABBITMQ_DEFAULT_VHOSTmy_vhost\-eRABBITMQ_DEFAULT_USERadmin\-eRABBITMQ_DEFAULT_PASSadmin\rabbitmq# 进入容器dockerexec-it镜像ID /bin/bash# 安装rabbitmq management管理插件rabbitmq-pluginsenablerabbitmq_management# 主机访问 http://localhost:15672# 发现totals和channel看不了,进入镜像cd/etc/rabbitmq/conf.d/# 把这个文件的true改为false,因为没有vim,所以用echoechomanagement_agent.disable_metrics_collectorfalsemanagement_agent.disable_metrics_collector.conf# 退出容器,执行dockerexec-it{rabbitmq容器名称或者id}rabbitmq-pluginsenablerabbitmq_management# restart容器安装zookeeperdockerrun-d-p2181:2181--privilegedtrue\-v/Users/yaoqiang/app/data/zookeeper/conf:/conf-v/Users/yaoqiang/app/data/zookeeper/data:/data--namemyzookeeper zookeeper:3.7.1安装nacos先拉取“zhusaidong/nacos-server-m1:2.0.3”镜像然后执行dockerrun-d-p8848:8848\--privilegedtrue\--envMODEstandalone\--namenacos zhusaidong/nacos-server-m1:2.0.3安装seata先拉取“apache/seata-server:latest”镜像然后执行dockerrun-d--privilegedtrue\--nameseata-server-p8091:8091\-p7091:7091 apache/seata-server安装minIOdockerrun-d\--nameminio\-p9000:9000\-p9001:9001\--restartalways\-eMINIO_ROOT_USERadmin\-eMINIO_ROOT_PASSWORDadmin123456\-v/Users/yaoqiang/app/data/minio/data:/data\-v/Users/yaoqiang/app/data/minio/config:/root/.minio\minio/minio:RELEASE.2025-04-22T22-12-26Z\server /data --console-address:9001安装xxl-jobdockerrun-d\--namexxl-job-admin\--restartunless-stopped\-p8686:8080\-v/Users/yaoqiang/app/data/xxljob/logs:/data/applogs\--networkmynetwork\-ePARAMS--spring.datasource.urljdbc:mysql://mysql8:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimezoneAsia/Shanghai --spring.datasource.usernameroot --spring.datasource.passwordroot --spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver --xxl.job.accessTokendefault_token\xuxueli/xxl-job-admin:3.2.0安装xxl-jobdockerrun--namepgadmin4\-p5050:80\-ePGADMIN_DEFAULT_EMAILadminexample.com\-ePGADMIN_DEFAULT_PASSWORDadmin123\-v/Users/yaoqiang/app/data/pgadmin_data:/var/lib/pgadmin\-ddpage/pgadmin4
上一篇/下一篇内容由系统自动关联 返回资讯列表 →