赞
踩
目录
- A:执行下载docker引擎的脚本文件
- curl -fsSL get.docker.com -o get-docker.sh
-
- B:执行脚本通过脚本下载,并设置阿里云加速
- sh get-docker.sh --mirror Aliyun
-
- C:启动docker服务:
- systemctl start docker ;systemctl enable --now docker
- systemctl status docker
-
- D:创建docker用户组,将当前用户加入docker组
- groupadd docker;usermod -aG docker $USER
-
- E:查看docker安装的信息
- docker info;docker version
-
- F:docker会出现如下情况:客户端引擎和服务端引擎
- Client: Docker Engine - Community
- Version: 23.0.5
- API version: 1.42
- Go version: go1.19.8
- Git commit: bc4487a
- Built: Wed Apr 26 16:18:56 2023
- OS/Arch: linux/amd64
- Context: default
-
- Server: Docker Engine - Community
- Engine:
- Version: 23.0.5
- API version: 1.42 (minimum version 1.12)
- Go version: go1.19.8
- Git commit: 94d3ad6
- Built: Wed Apr 26 16:16:35 2023
- OS/Arch: linux/amd64
- Experimental: false
- containerd:
- Version: 1.6.21
- GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
- runc:
- Version: 1.1.7
- GitCommit: v1.1.7-0-g860f061
- docker-init:
- Version: 0.19.0
- GitCommit: de40ad0
-
-
- G: runc 低阶运行时
- dockershim 中间人
- containerd 高阶运行时
- containerd 接受客户端命令,通过dockershim传递给runc进行处理
- 镜像: images
- 定义:一个镜像就是代表一个软件
-
- 容器:container
- 定义:一个镜像运行一次就会生一个容器,容器就是一个运行的软件服务
-
- 仓库:registry
- 定义:存储镜像软件的位置 ===》 仓库web页面:docker hub或私有镜像仓库harbor(需自己搭建)
- https://hub.docker.com/
- 国内地址:https://www.daocloud.io/
镜像:一个镜像代表一个虚拟环境,是一个只读的文件,如mysql镜像,redis镜像等
容器:镜像每次运行之后就产生一个容器,就是正在运行的镜像文件,特点是可读可写
仓库:用来存储镜像的位置,类似于maven仓库,也是经i选哪个下载和上传的位置
dockerfile:docker生成镜像的配置文件,用来书写自定义镜像的一些配置信息
tar:镜像的打包文件,之后可以还原成镜像
- 查看
- [root@localhost ~]#dockerd --help | grep json
- --config-file string Daemon configuration file (default "/etc/docker/daemon.json")
- 此文件默认没有,需要自己创建:
- vim /etc/docker/daemon.json
-
- {
- "registry-mirrors": [
- "http://hub-mirror.c.163.com",
- "https://docker.mirrors.ustc.edu.cn",
- "https://registry.docker-cn.com"
- ]
- }
-
-
- 之后重新加载docker:
- systemctl daemon-reload;systemctl restart docker;docker info
-
- 查看Registry Mirrors:
- http://hub-mirror.c.163.com/
- https://docker.mirrors.ustc.edu.cn/
- https://registry.docker-cn.com/
-
-
- 核心目录:
- 软件数据目录 /var/lib/docker/
- 专属服务目录 /etc/docker
-
- 测试:docker run hello-world
- [root@localhost ~]#docker images --help
-
- Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
-
- List images
-
- Aliases:
- docker image ls, docker image list, docker images
-
- Options:
- -a, --all Show all images (default hides intermediate images)
- --digests Show digests
- -f, --filter filter Filter output based on conditions provided
- --format string Format output using a custom template:
- 'table': Print output in table format with column headers (default)
- 'table TEMPLATE': Print output in table format using the given Go template
- 'json': Print in JSON format
- 'TEMPLATE': Print output using the given Go template.
- Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates
- --no-trunc Don't truncate output
- -q, --quiet Only show image IDs
- 选项:
- 全部显示所有图像(默认为隐藏中间图像)
- ——摘要显示了摘要
- -f,过滤器过滤器输出基于提供的条件
- ——使用自定义模板格式化字符串格式输出:
- “表”:以带有列标题的表格格式打印输出(默认值)
- “表格模板”:使用给定的Go模板以表格格式打印输出
- “JSON”:打印在JSON格式
- “模板”:使用给定的Go模板打印输出。
- 有关使用模板格式化输出的更多信息,请参阅https://docs.docker.com/go/formatting/
- -不截断输出
- -安静,只显示图像id
- *****docker --help
- Usage: docker [OPTIONS] COMMAND
- A self-sufficient runtime for containers
- Common Commands:
- run Create and run a new container from an image
- 运行“创建”,并从映像中运行一个新的容器
- exec Execute a command in a running container
- 执行:在正在运行的容器中执行一个命令
- ps List containers
- ps列表容器
- build Build an image from a Dockerfile
- 从码头文件构建映像
- pull Download an image from a registry
- 从注册表中下载一个图像
- push Upload an image to a registry
- 将图像上传推送到注册表
- images List images
- 图像列表图像
- login Log in to a registry
- 登录名:登录到注册表
- logout Log out from a registry
- 注销从注册表中注销
- search Search Docker Hub for images
- 搜索搜索码头工人中心的图像
- version Show the Docker version information
- 版本显示Docker版本信息
- info Display system-wide information
- 信息显示:系统范围内的信息
-
-
-
- Management Commands:
- builder Manage builds
- 构建器管理构建
- buildx* Docker Buildx (Docker Inc., v0.10.4)
- Docker构建镜像*(DockerInc.,v0.10.4)
- compose* Docker Compose (Docker Inc., v2.17.3)
- Docker编排工具(Docker Inc.,v2.17.3)
- container Manage containers
- 容器管理容器
- context Manage contexts
- 上下文管理上下文
- image Manage images
- 图像管理图像
- manifest Manage Docker image manifests and manifest lists
- 清单管理Docker映像清单和清单列表
- network Manage networks
- 网络管理网络
- plugin Manage plugins
- 插件管理插件
- system Manage Docker
- 系统管理文档
- trust Manage trust on Docker images
- 信任,管理对Docker映像的信任
- volume Manage volumes
- 卷管理卷
- Swarm Commands:
- swarm Manage Swarm
- Commands:
- attach Attach local standard input, output, and error streams to a running container 将本地标准的输入、输出和错误流附加到正在运行的容器
- commit Create a new image from a container's changes
- 提交从容器的更改中创建一个新的图像
- cp Copy files/folders between a container and the local filesystem
- 在容器和本地文件系统之间复制文件/文件夹
- create Create a new container
- 创建:创建一个新的容器
- diff Inspect changes to files or directories on a container's filesystem
- 差异检查对容器的文件系统上的文件或目录的更改
- events Get real time events from the server
- 事件从服务器获取实时事件
- export Export a container's filesystem as a tar archive
- 导出将容器的文件系统导出为tar存档
- history Show the history of an image
- 历史显示一个图像的历史
- import Import the contents from a tarball to create a filesystem image
- 导入从目标中导入内容以创建文件系统映像
- inspect Return low-level information on Docker objects
- 检查返回有关Docker对象的低级信息
- kill Kill one or more running containers
- 杀死,杀死一个或多个正在运行的容器
- load Load an image from a tar archive or STDIN
- 从tar存档或STDIN加载图像
- logs Fetch the logs of a container
- 日志获取一个容器的日志
- pause Pause all processes within one or more containers
- 暂停暂停一个或多个容器中的所有进程
- port List port mappings or a specific mapping for the container
- 端口列表端口映射或容器的特定映射
- rename Rename a container
- 重命名重命名容器
- restart Restart one or more containers
- 重新启动,重新启动一个或多个容器
- rm Remove one or more containers
- 删除一个或多个容器
- rmi Remove one or more images
- 删除一个或多张图像
- save Save one or more images to a tar archive (streamed to STDOUT by default)
- 保存一个或多个图像保存到tar存档(默认情况下流到STDOUT)
- start Start one or more stopped containers
- 启动,启动一个或多个已停止的容器
- stats Display a live stream of container(s) resource usage statistics
- 统计数据显示容器资源使用情况统计数据的实时流
- stop Stop one or more running containers
- 停止停止一个或多个正在运行的容器
- tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
- 标记创建一个引用为SOURCE_IMAGE的标记TARGET_IMAGE
- top Display the running processes of a container
- 顶部显示容器的运行进程
- unpause Unpause all processes within one or more containers
- 取消暂停取消暂停一个或多个容器中的所有进程
- update Update configuration of one or more containers
- 更新一个或多个容器的更新配置
- wait Block until one or more containers stop, then print their exit codes
- 等待块,直到一个或多个容器停止,然后打印其退出代码
-
-
-
- Global Options:
- --config string Location of client config files (default "/root/.docker")
- -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
- -D, --debug Enable debug mode
- -H, --host list Daemon socket(s) to connect to
- -l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
- --tls Use TLS; implied by --tlsverify
- --tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
- --tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
- --tlskey string Path to TLS key file (default "/root/.docker/key.pem")
- --tlsverify Use TLS and verify the remote
- -v, --version Print version information and quit
-
- Run 'docker COMMAND --help' for more information on a command.
-
- For more help on how to use Docker, head to https://docs.docker.com/go/guides/
-
-
- 全局选项:
- ——配置字符串客户端配置文件的位置(默认值为“/root/.docker”)
- -c,——上下文字符串用于连接到守护进程的上下文的名称(用“文档器上下文使用”覆盖DOCKER_HOST env var和默认上下文设置)
- -调试启用调试模式
- 主机列表守护进程插接字(s)
- -l、--日志级别字符串设置日志记录级别(“调试”、“info”、“警告”、“错误”、“致命”)(默认为“info”)
- ——TLS使用TLS;隐含的——TLS验证
- ——tlscacert字符串信任证书仅由此CA签名(默认为“/root/.docker/ca.pem”)
- ——Tlscert字符串路径到TLS证书文件(默认“/root/.docker/cert.pem”)
- ——TLS key字符串到TLS关键字文件的路径(默认为“/root/.docker/key.pem”)
- --验证使用TLS并验证远程器
- 打印版本信息并退出
-
- 运行“docker命令——帮助”以获取关于命令的更多信息。
-
- 想了解更多关于如何使用Docker的帮助,请访问https://docs.docker.com/go/guides/
-
-
1,镜像操作
- 1,查看镜像:docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- 镜像名称 镜像版本 镜像ID 镜像创建时间 镜像大小
-
-
- 2,搜索镜像:docker search 镜像名称
- 例:docker search tomcat
- NAME(镜像名称) DESCRIPTION (描述信息)STARS(星级)OFFICIAL(官方镜像)AUTOMATED(三方上传)
-
-
-
- 3,下载镜像:docker pull 镜像名称:可指定版本号,不指定则拉取最新镜像latest
- 例:docker pull tomcat ---》 默认最新版本latest
- docker pull tomcat:7.0 ---》指定版本号
-
- 4,删除镜像:docker rmi 镜像名或者镜像ID(dockers正在运行中禁止删除)
- docker rmi -f 镜像名或ID(强制删除)
- 例:docker rmi 448a08f1d2f9
-
- 5,查看指定的镜像:docker images 镜像名称
-
- 6,只查看镜像ID:docker images -q
- 例:docker images nginx -q
-
- 7,查看所有镜像ID:docker ps -qa
-
- 8,批量删除多有镜像:docker rm -fv $(docker ps -qa)
2,容器相关操作
- 命令格式:
- docker [OPTIONS] COMMAND
- 常用格式:
- docker run -it -d -p -v --name 镜像名称
- -i,-交互式保持STDIN打开,即使没有连接
- -t,分配一个伪tty
- -d,后台运行
- -p,端口映射
- -v,数据映射
- --name 指定名称
-
- 1,查看docker引擎中正在运行的容器:
- docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 容器ID 镜像名称 容器内执行的命令 创建及运行时间 状态 映射端口 容器名称(可自定义名称)
-
-
- 2,运行容器命令:
- docker run --help
- docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-
- 3,运行容器时,设置容器与宿主机的端口映射,设置端口映射,在启动容器时,iptables或及那个映射的端口添加至防火墙开放列表中
-
- -p 宿主机端口:容器端口
- 可映射多个端口:用-p选项指定:-p 8080:8080 -p 8001:80 -p 5672:5672
-
- 例:docker run -it -p 8080:8080 tomcat:8.0
-
- 4,后台运行容器:
- -d 后台运行该容器
- 例:docker run -it -d -p 8080:8080 tomcat:8.0
-
- 5,指定容器名称 --name
- 例:docker run -it -d -p 8081:8080 --name tomcat1 tomcat:8.0
-
- 6,删除容器:
- docker rm 容器ID -----》删除已经停止的容器
- docker rm -f 容器ID -----》强制删除(运行中的容器也可以删除)
- docker rm -f $(docker ps -qa)----》删除所有容器
-
- 7,查看容器日志:
- docker logs 容器名|容器ID
- docker logs -t 加时间戳查看日志
- docker logs -f 容器名|容器ID ----》实时查看容器日志
-
- 8,进入容器内部
- docker exec -it 容器ID /bin/bash
- docker exec -it 容器ID bash
- docker exec -it 容器ID sh
-
-
- docker容器的停止,启动,重启,暂停,恢复
- docker stop 容器ID|容器名称
- docker start 容器ID|容器名称
- docker restart 容器ID|容器名称
- docker pause 容器ID|容器名称 暂停
- docker unpause 容器ID|容器名称 恢复
-
-
-
- Options:
- --add-host list 添加一个自定义的主机到ip的映射(主机:ip)
- -a, --attach list -a,--附加列表附加到STDIN、STDOUT或STDERR
- --blkio-weight uint16 blkio重量uint16块IO(相对重量),在10和1000之间,或0以禁用(默认为0)
- --blkio-weight-device list 块IO重量(相对设备重量)(默认[])
- --cap-add list 添加Linux功能
- --cap-drop list 删除Linux功能
- --cgroup-parent string 可选容器的可选父cgroup
- --cgroupns string 要使用的群组字符串群组名称空间(主机|私有)
- “主机”:在Docker主机的cgroup命名空间中运行该容器
- “私有”:在容器自己的私有cgroup命名空间中运行该容器
- “”:使用所配置的cgroup名称空间,守护进程上的默认分组模式选项(默认)
- --cidfile string 将容器ID写入该文件
- --cpu-period int -CPU周期内部限制CPUCFS(完全公平的调度程序)周期
- --cpu-quota int --限制CPUCFS(完全公平的调度程序)配额
- --cpu-rt-period int 限制CPU的实时周期,单位为微秒
- --cpu-rt-runtime int 限制CPU实时运行时,单位为微秒
- -c, --cpu-shares int -c,—CPU共享内部CPU共享(相对权重)
- --cpus decimal CPUs十进制的cpu数
- --cpuset-cpus string CPUs十进制的cpu数
- --cpuset-mems string 允许执行的内存模块字符串(0-3、0、1)
- -d, --detach 在后台分离运行容器,并打印容器ID
- --detach-keys string 覆盖用于分离容器的键序列
- --device list 设备列表添加主机设备到容器
- --device-cgroup-rule list 将规则添加到允许的设备列表中
- --device-read-bps list 从设备读取速率(每秒字节)(默认[])
- --device-read-iops list 设备读取列表限制设备读取速率(每秒IO)(默认[])
- --device-write-bps list 设备写基点列表限制设备的写速率(每秒字节)(默认[])
- --device-write-iops list 设备写操作操作列表限制设备的写速率(每秒IO)(默认[])
- --disable-content-trust 禁用内容信任,跳过映像验证(默认为true)
- --dns list dns列表设置自定义DNS服务器
- --dns-option list 设置DNS选项
- --dns-search list 设置自定义DNS搜索域
- --domainname string 域名字符串容器NIS域名
- --entrypoint string 域名字符串容器NIS域名
- -e, --env list env列表设置环境变量
- --env-file list 在环境变量文件中读取
- --expose list 暴露列表暴露一个端口或一系列端口
- --gpus gpu-request gpugpu请求GPU设备添加到容器(“所有”通过所有gpu)
- --group-add list 组添加列表添加要加入的其他组
- --health-cmd string 运行状况的cmd字符串命令,要运行以检查运行状况
- --health-interval duration 运行状况间隔持续时间运行检查之间的时间(ms||m|h)(默认0s)
- --health-retries int 健康重试和报告不健康状况所需要的连续失败
- --health-start-period duration -运行状况开始期间持续时间开始运行状况重试倒计时前初始化的容器的开始期间(ms||m|h)(默认0)
- --health-timeout duration 运行状况超时持续时间允许一次检查运行的最大时间(ms||m|h)(默认值为0s)
- --help 帮助打印工具的使用
- -h, --hostname string 主机名字符串容器主机名
- --init init在容器内运行一个转发信号和捕获进程的init
-
- -i, --interactive -i,-交互式保持STDIN打开,即使没有连接
- --ip string ip字符串IPv4地址(如172.30.100.104)
- --ip6 string ip6字符串IPv6地址(例如,2001:db8::33)
- --ipc string 要使用的IPC字符串IPC模式
- --isolation string 隔离字符串、容器隔离技术
- --kernel-memory bytes 内核内存字节的内核内存限制
- -l, --label list -l,——标签列表设置容器上的元数据
- --label-file list 标签文件列表在以行分隔的标签文件中读取
- --link list 链接列表添加链接到另一个容器
- --link-local-ip list 链路本地i列表容器IPv4/IPv6链路本地地址
- --log-driver string 日志驱动程序字符串日志驱动程序
- --log-opt list 日志驱动程序选项
- --mac-address string 容器MAC地址(例如,92:d0:c6:0a:29:33)
-
-
- -t, --tty 分配一个伪tty
- --ulimit ulimit 超限选项(默认[])
-
-
-
-
-
-
-
- 获取软件
- mkdir /data/softs
- wget -c https://download.docker.com/linux/static/stable/x86_64/docker-
- 20.10.14.tgz
-
-
- 解压软件
- tar xf docker-20.10.14.tgz -C /usr/local/bin --strip-components=1
- 注意:
- --strip-components=1 表示仅仅将该压缩文件中的内容,解压到指定的目录中
-
-
- 创建依赖目录
- mkdir /var/lib/docker /etc/docker
-
- 创建service服务文件
- # vim /usr/lib/systemd/system/docker.service
- [Unit]
- Description=Docker Application Container Engine
- Documentation=https://docs.docker.com
- After=network-online.target firewalld.service
- Wants=network-online.target
- [Service]
- Type=notify
- ExecStart=/usr/local/bin/dockerd -H unix:///var/run/docker.sock --data-
- root=/var/lib/docker
- ExecReload=/bin/kill -s HUP $MAINPID
- LimitNOFILE=infinity
- LimitNPROC=infinity
- LimitCORE=infinity
- TimeoutStartSec=0
- Delegate=yes
- KillMode=process
- Restart=on-failure
- StartLimitBurst=3
- StartLimitInterval=60s
- [Install]
- WantedBy=multi-user.target
-
-
- 添加国内加速仓库:
- # vim /etc/docker/daemon.json
- {
- "registry-mirrors": [], "insecure-registries": []
- }
-
-
-
- 创建用户组
- groupadd docker
- 将当前用户加入到指定用户组
- usermod -aG docker $USER
- 更新用户组
- newgrp docker
-
-
- 启动服务:
- 重载配置文件
- systemctl daemon-reload
- systemctl start docker
- systemctl enable docker
-
-
- 查看信息:docker info
- FROM:
- 语法:
- FROM <image>
- FROM <image>:<tag>。
- 解释:
- FROM 是 Dockerfile 里的第一条而且只能是除了首行注释之外的第一条指令
-
-
- MAINTAINER:
- 语法:
- MAINTAINER <name>
- 解释:
- 指定该dockerfile文件的维护者信息。类似我们在docker commit 时候使用-a参数指定的信息
-
- RUN:
- 语法:
- RUN <command> (shell模式)
- RUN ["executable", "param1", "param2"]。 (exec 模式)
- 解释:
- 表示当前镜像构建时候运行的命令
-
- shell模式 类似于 /bin/bash -c command RUN echo hello
- exec 模式 类似于 RUN ["/bin/bash", "-c", "command"] RUN ["echo", "hello"]
-
-
- EXPOSE:
- 语法:
- EXPOSE <port> [<port>...]
- 解释:
- 设置Docker容器对外暴露的端口号,Docker为了安全,不会自动对外打开端口,如果需要外部提供访
- 问,还需要启动容器时增加-p或者-P参数对容器的端口进行分配。
-
-
- ENTRYPOINT:
- 语法:
- ENTRYPOINT ["executable", "param1","param2"] (exec 模式)
- ENTRYPOINT command param1 param2 (shell模式)
- 解释:
- 每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。
-
-
- ADD:
- 语法:
- ADD <src>... <dest>
- ADD ["<src>",... "<dest>"]
-
- 解释:
- 将指定的 文件复制到容器文件系统中的
- src 指的是宿主机,dest 指的是容器
- 如果源文件是个压缩文件,则docker会自动帮解压到指定的容器中(无论目标是文件还是目录,都会当成
- 目录处理)。
-
-
-
- COPY:
- 语法:
- COPY <src>... <dest>
- COPY ["<src>",... "<dest>"]
-
- 解释:
- 单纯复制文件场景,Docker推荐使用COPY
-
-
- VOLUME:
- 语法:
- VOLUME ["/data"]
-
- 解释:
- VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点
- 通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的。
-
-
- ENV:
- 语法:
- ENV <key> <value>
- ENV <key>=<value> ...
-
- 解释:
- 设置环境变量,可以在RUN之前使用,然后RUN命令时调用,容器启动时这些环境变量都会被指定。
-
-
- WORKDIR:
- 语法:
- WORKDIR /path/to/workdir (shell 模式)
- 解释:
- 切换目录,为后续的RUN、CMD、ENTRYPOINT 指令配置工作目录。 相当于cd
-
-
-
-
- 例:ssh镜像
- 创建Dockerfile专用目录
- mkdir /docker/images/ssh -p
- cd /docker/images/ssh
- 创建秘钥认证
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub > authorized_keys
- 定制Dockerfile
- # 构建一个基于ubuntu的ssh定制镜像
- # 基础镜像
- FROM ubuntu
- # 镜像作者
- MAINTAINER President.Wang 000000@qq.com
- # 安装 ssh 服务
- RUN apt-get update && apt-get install -y openssh-server curl vim net-tools &&
- mkdir -p /var/run/sshd && mkdir -p /root/.ssh && sed -i "s/.*pam_loginuid.so/#&/"
- /etc/pam.d/sshd && apt-get autoclean && apt-get clean && apt-get autoremove
- # 复制配置文件到相应位置,并赋予脚本可执行权限
- ADD authorized_keys /root/.ssh/authorized_keys
- # 对外端口
- EXPOSE 22
- # 启动ssh
- CMD ["/usr/sbin/sshd","-D"]
-
- 构建镜像
- docker build -t ubuntu-ssh .
- 使用新镜像启动一个容器,查看效果
- docker run -d -p 10086:22 ubuntu-ssh
- 容器检查
- docker ps
- docker port c03d146b64d4
- ssh查看效果
- ssh 192.168.8.12 -p 1008
- docker pull alpine
- docker run -it alpine sh
-
-
- apk -help(安装帮助)
- apk add vim (安装vim)
-
-
- mkdir -p /opt/dockerfile/web/{nginx-ubuntu,nginx-alpine}
- cd /pt/dockerfile/web/nginx-alpine
- rz nginx-1.22.0.tar.gz
-
- vim repositories(此mirrors.aliyun.com可能会报错,需在Dockerfile中注释掉)
- #http://dl-cdn.alpinelinux.org/alpine/v3.11/main
- #http://dl-cdn.alpinelinux.org/alpine/v3.11/community
-
- http://mirrors.aliyun.com/alpine/v3.11/main
- http://mirrors.aliyun.com/alpine/v3.11/community
-
-
- cat Dockerfile
-
- FROM alpine
- LABLE ()作者信息
- ADD repositories /etc/apk/repositories
- RUN apk update && apk add iotop gcc libgcc libc-dev libcurl pcre-dev zlib-dev libnfs make pcre2 zip unzip net-tools pstree wget libevent libevent-dev iproute2
- RUN addgroup -g 2022 -S nginx && adduser -s /sbin/nologin -S -D -u 2022 -G nginx
- RUN addgroup -g 2022 -S www && adduser -s /sbin/nologin -S -D -u 2022 -G www
- (以上可做基础镜像)
-
- ADD nginx-1.22.0.tar.gz /usr/local/src
- RUN /usr/local/src/nginx-1.22.0 && ./configure --prefix=/apps/nginx && make && make install
- RUN ln -sv /apps/nginx/sbin/nginx /usr/sbin
- (以上可作nginx基础镜像)
-
- ADD nginx.conf /apps/nginx/conf
- ADD html.tar.gz /apps/nginx/html
- RUN cd /apps/nginx/html && rm -rf html.tar.gz
- CMD ["nginx"] (启动命令)
- (业务镜像)
-
- cat build-command.sh
- docker build -t nginx-1.22.0:alpine-basev1 .
-
-
- 启动容器测试:
- docker run -it --rm -p 80:80 nginx-1.22.0:alpine-basev1
-
- 在浏览器访问
-
-
- docker pull ubuntu:18.04(可指定版本号)
-
- mkdir -p /opt/dockerfile/web/{nginx-ubuntu,nginx-alpine}
- cd /pt/dockerfile/web/nginx-ubuntu
- rz nginx-1.22.0.tar.gz
-
- cat sources.list
- deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
- deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
-
- ..........(填写阿里云中ubuntu的镜像地址)
-
-
-
- cat Dockerfile
-
- FROM ubuntu:18.04
- LABLE ()作者信息
- ADD sources.list /etc/apt/sources.list (如果出现报错,可注释,使用官方源)
- RUN apt update && apt -y install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip make && apt clean
- RUN groupadd -g 2022 nginx && useradd -s /sbin/nologin -g nginx -u 2022 nginx
- RUN groupadd -g 2022 www && useradd -s /sbin/nologin -g www -u 2022 www
- (以上可做基础镜像)
-
-
- ADD nginx-1.22.0.tar.gz /usr/local/src
- RUN /usr/local/src/nginx-1.22.0 && ./configure --prefix=/apps/nginx && make && make install
- RUN ln -sv /apps/nginx/sbin/nginx /usr/sbin
- (以上可作nginx基础镜像)
-
-
- ADD nginx.conf /apps/nginx/conf
- ADD html.tar.gz /apps/nginx/html
- RUN cd /apps/nginx/html && rm -rf html.tar.gz
- CMD ["nginx"] (启动命令)
- (业务镜像)
-
- cat build-command.sh
- docker build -t nginx-1.22.0:ubuntu-basev1 .
-
-
- 启动容器测试:
- docker run -it --rm -p 80:80 nginx-1.22.0:ubuntu-basev1
-
- 在浏览器访问
-
-
-
1,基于官方镜像,centos,ubuntu,debain,alpine等基础镜像构建JDK(java环境),然后在基于自定义的JDK镜像构建出业务需要的tomcat镜像
2,构建JDK镜像:
先基于官方提供的基础镜像,制作出安装了常用命令的自定义基础镜像,然后在基础镜像的基础上,在制作JDk镜像,tomcat镜像等
1.1centos基础镜像
- #docker pull centos
- #mkdir
- /opt/dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,alpine,debain}} -pv
-
- #cd /opt/dockerfile/system/centos
- #cat Dockerfile
- #Centos Base image(注释)
- FROM centos:latest (可指定版本)
- MAINTAINER 作者信息
- RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-7.noarch.rpm
- RUN yum install -y epel-release
- RUN yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof tmux man-pages zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel
- RUN groupadd www -g 2023 && useradd www -u 2023 -g www && groupadd nginx -g 2023 && useradd nginx -u 2023 -g nginx #添加系统账户(通用用户可在此创建)
-
-
- #cat build-command.sh 通过脚本构建镜像
- #!/bin/bahs
- docker build -t centos-base:v1 .
-
- #bash biuld-command.sh执行构建镜像
2.1JDK基础镜像
- cd /opt/dockerfile/web/jdk
- mkdir jdk-8u212 && cd jdk-8u212
-
- cat Dockerfile
- FROM centos-base:v1
- MAINTAINER (作者信息)
-
- #jdk.tar.gz安装包也要在此目录中,先在宿主机中做好/etc/profile的环境变量,将profile文件拷贝至此目录
- ADD jdk-8u212-linux-x64.tar.gz /usr/local/src
- RUN ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk
- ADD profile /etc/profile
-
- ENV JAVA_HOME /usr/local/jdk
- ENV JRE_HOME $JAVA_HOME/jre
- ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib
- ENV PATH $PATH:$JAVA_HOME/bin
-
- RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
-
- cat build-command.sh
- #!/bin/bash
- docker build -t centos-jdk:8u212 .
-
-
-
- 构建完成后,进入容器执行java -version
- 此镜像继承www和nginx用户组
3,tomcat基础镜像
- cd /opt/dockerfile/web/tomcat
- mkdir tomcat8.5.51-base && cd tomcat8.5.51-base
- rz apache-tomcat-8.5.51.tar.gz
-
-
-
- cat Dockerfile
- FROM centos-jdk:8u212
- LABEL (作者信息)
-
- ADD apache-tomcat-8.5.51.tar.gz /apps
- RUN ln -sv /apps/apache-tomcat-8.5.51 /apps/tomcat
-
-
-
- cat build-command.sh
- !#/bin/bash
- docker build -t centos-tomcat:8.5.51 .
-
-
-
- 制作完成之后进入容器测试:
- docker run -it --rm -p 8080:8080 centos-tomcat:8.5.51 bash
- #/apps/tomcat/bin/catalina.sh start
- #ss -tnl
-
-
- 之后在浏览器进行验证
4,tomcat业务镜像
- cd /opt/dockerfile/web/tomcat
- mkdir tomcat-app1 && cd tomcat-app1
- rz server.xml(优化和更改完成之后的配置文件)
- rz index.html.tar.gz
-
-
- cat Dockerfile
-
- FROM centos-tomcat:8.5.51
- ADD server.xml /apps/tomcat/conf/server.xml
- ADD index.html.tar.gz /data/tomcat/webapps(此目录在server.xml中查看)
- ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
- RUN chown -R www.www /apps
- EXPOSE 8080 8005 8009
- CMD ["/apps/tomcat/bin/run_tomcat.sh"]
-
-
- cat run_tomcat.sh
- #!/bin/bash
- su - www -c "/apps/tomcat/bin/catalina.sh start'
- tail -f /etc/hosts (添加守护进程,变化量较小的文件)
- chmod a+x run_tomcat.sh (不加权限启动镜像时会报错)
- cat build-command.sh
- !#/bin/bash
- docker build -t tomcat-app1:v1 .
- docker run -it --rm -p 8080:8080 tomcat-app1:v1
- 在容器例查看ss -tnl
- 在浏览器进行访问 /index.html
1,构建基础镜像
-
- #docker pull centos
- #mkdir
- /opt/dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,alpine,debain}} -pv
-
- #cd /opt/dockerfile/system/centos
- #cat Dockerfile
- #Centos Base image(注释)
- FROM centos:latest (可指定版本)
- MAINTAINER 作者信息
- RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-7.noarch.rpm
- RUN yum install -y epel-release
- RUN yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof tmux man-pages zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel
- RUN groupadd www -g 2023 && useradd www -u 2023 -g www && groupadd nginx -g 2023 && useradd nginx -u 2023 -g nginx #添加系统账户(通用用户可在此创建)
-
-
- #cat build-command.sh 通过脚本构建镜像
- #!/bin/bahs
- docker build -t centos-base:v1 .
-
- #bash biuld-command.sh执行构建镜像
-
-
2,nginx基础镜像
-
- cd /opt/dockerfile/web/nginx
- mkdir nginx-v1.22.0-base && cd nginx-v1.22.0-base
- rz nginx-1.22.0.tar.gz
-
-
-
- cat Dockerfile
- FROM centos-base:v1
- LABEL (作者信息)
-
- ADD nginx-1.22.0.tar.gz /usr/local/src
- RUN cd /usr/local/src/nginx-1.22.0/ && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin && rm -rf /usr/local/src/nginx-1.22.0 && mkdir /data/nginx/html -p
-
- RUN groupadd nginx -g 2023 && useradd nginx -u 2023 -g nginx -s /sbin/nologin
- RUN chown nginx.nginx /data/nginx /apps/nginx
- EXPOSE 80 443
- CMD ["/apps/nginx/sbin/nginx","-g","daemon off;"]
-
-
- cat build-command.sh
- !#/bin/bash
- docker build -t nginx-v1.22.0-base .
-
-
-
- 制作完成之后进入容器测试:
- docker run -it --rm -p 80:80 nginx-v1.22.0-base bash
-
- #ss -tnl
-
-
- 之后在浏览器进行验证
-
-
3,nginx业务镜像
-
- cd /opt/dockerfile/web/nginx
- mkdir nginx-web1 nginx-web2&& cd nginx-web1
- rz nginx.conf(优化和更改完成之后的配置文件)
- rz index.html.tar.gz
-
-
-
- cat Dockerfile
-
- FROM nginx-v1.22.0-base
- ADD nginx.conf /apps/nginx/conf
- ADD index.html.tar.gz /data/nginx/html
-
- RUN chown -R nginx.nginx /apps/nginx
- EXPOSE 80 443
- CMD ["/apps/nginx/sbin/nginx","-g","daemon off;"]
-
-
-
- cat build-command.sh
- !#/bin/bash
- docker build -t nginx-web1:v1 .
-
- docker run -it --rm -p 80:80 nginx-web1:v1
- 在容器例查看ss -tnl
- 在浏览器进行访问
-
-
- docker pull centos
- mkdir /opt/dockerfile/web/haproxy-centos -pv
-
- cd /opt/dockerfile//haproxy-centos
- rz haproxy-2.0.15.tar.gz
-
- cat Dockerfile
-
- FROM centos-base:v1 (此处使用centos基础镜像)
- LABEL 作者信息
-
- RUN yum -y install vim-enhanced tcpdump lrzsz tree telnet bash-completion net-tools wget bzip2 lsof tmux man-pages zip unzip nfs-utils gcc make gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel
-
- ADD haproxy-2.0.15.tar.gz /usr/local/src/
-
- RUN cd /usr/local/src/haproxy-2.0.15 && make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && cp haproxy /usr/sbin/ && mkdir /usr/local/haproxy/run
- ADD haproxy.cfg /etc/haproxy
-
- ADD run_haproxy.sh /usr/bin/run_haproxy.sh
- EXPOSE 80 9999
- CMD ["/usr/bin/run_haproxy.sh"]
-
-
-
- cat run_haproxy.sh
- !#/bin/bash
- /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
- tail -f /etc/hosts
- chmod +x run_haproxy.sh
-
-
-
- cat haproxy.cfg(配置文件)
- global
- nbproc 1
- pidfile /usr/local/haproxy/run/haproxy.pid
- log 127.0.0.1 local3 info
-
- defaults
- option http-keep-alive
- option forwardfor
- mode http
- timeout connect 300000ms
- timeout client 300000ms
- timeout server 300000ms
-
- listen stats
- mode http
- bind 0.0.0.0:9999
- stats enable
- log global
- stats uri /haproxy-status
- stats auth haadmin:admin
-
- listen web-port
- bind 0.0.0.0:80
- mode http
- log global
- balance roundrobin
- server web1 192.168.200.101:8080 check inter 3000 fall 3 rise 5
- server web1 192.168.200.102:8080 check inter 3000 fall 3 rise 5
-
-
-
- cat build-command.sh 通过脚本构建镜像
- #!/bin/bahs
- docker build -t haproxy:2.0.15-centos .
-
- bash biuld-command.sh执行构建镜像
-
- 测试:docker run -it -p 80:80 -p 9999:9999 haproxy:2.0.15-centos
- ss -tnl
-
- 在浏览器访问ip:9999
-
简介:Docker compose是一种docker容器的任务编排工具
官方文档: https://docs.docker.com/compose/
- 1,命令简介:
-
- docker compose的配置文件
- docker-compose.yml 只能是这个名称
- 文件后缀是yml
- 文件内容遵循 ymal格式
-
-
- 安装:apt install docker-compose -y
- 查看编排工具版本:docker-compose version
- 查看命令帮助:docker-compose --help
-
- 注意:
- 所有命令尽量都在docker compose项目目录下面进行操作
- 项目目录:docker-compose.yml所在目录
-
- ]# docker-compose --help
- Define and run multi-container applications with Docker.
- Usage:
- docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
- docker-compose -h|--help
- Options: 选项参数
- -f, --file FILE 指定配置文件,默认docker-compose.yml
- -p, --project-name NAME 指定compose项目的文件目录
- --verbose 显示更多信息
- --log-level LEVEL 设置日志的级别 (DEBUG, INFO, WARNING, ERROR,
- CRITICAL)
- --no-ansi 不要打印ANSI控制字符
- -v, --version 打印版本信息
- -H, --host HOST 连接其他主机的docker-compose主机
- --tls 使用TLS;需要 --tlsverify 参数
- --tlscacert CA_PATH 使用CA签名的信任证书
- --tlscert CLIENT_CERT_PATH 指定CA证书的路径
- --tlskey TLS_KEY_PATH 指定 私钥文件的路径
- --tlsverify 使用TLS并验证远程
- --skip-hostname-check 客户端连接的时候不要检查docker-compose的主机名
- --project-directory PATH 指定项目的工作路径,默认是docker-compose.yaml文件所在路
- 径
- --compatibility 如果设置,则Compose将尝试将v3文件中的密钥转换为其等效的非
- Swarm密钥
- --env-file PATH 设定专用环境变量路径
-
-
- 2,Commands: 操作子命令
- build Build or rebuild services
- bundle Generate a Docker bundle from the Compose file
- config Validate and view the Compose file
- create Create services
- down Stop and remove containers, networks, images, and volumes
- events Receive real time events from containers
- exec Execute a command in a running container
- help Get help on a command
- images List images
- kill Kill containers
- logs View output from containers
- pause Pause services
- port Print the public port for a port binding
- ps List containers
- pull Pull service images
- push Push service images
- restart Restart services
- rm Remove stopped containers
- run Run a one-off command
- scale Set number of containers for a service
- start Start services
- stop Stop services
- top Display the running processes
- unpause Unpause services
- up Create and start containers
- version Show the Docker-Compose version information
-
-
-
- 3,创建+启动服务:
- docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
- options:
- -d 在后台运行服务容器
- --quiet-pull 拉取时不打印进度信息
- --no-build 即使缺失服务镜像,也不自动构建缺失的服务镜像
- --build 启动容器前,先构建自有镜像
- --force-recreate 强制重建所有服务容器,即使配置不变动的时候.
- --always-recreate-deps 重新创建从属容器。 与--no-recreate不兼容。
- --no-recreate 如果容器已经存在,请不要重新创建它们。 与--force-
- recreate和-V不兼容。
- –-scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的
- 参数
-
- 示例:
- ]# docker-compose -f /data/compose/docker-compose.yml up -d
- Creating network "compose_default" with the default driver
- Creating nginx-web1 ... done
- Creating nginx-web2 ... done
-
-
-
- 4,关闭+移除服务:
- 关闭服务
- docker-compose down [options]
- Options:
- --rmi type 移除镜像,all代表所有,local仅删除没有在"image"字段中出现的
- 镜像。
- -v, --volumes 删除在Compose文件的“ volumes”部分中声明的命名卷和附加到容器
- 的匿名卷。
- --remove-orphans 删除未在"docker-compose.yaml"文件中定义的service的容
- 器
- -t, --timeout TIMEOUT 设置删除服务的超时时间,默认10s
- 注意:
- 如果不加任何参数,默认删除所有内容
-
-
-
-
- 5,创建一个服务
- docker-compose create [options] [SERVICE...]
- options
- --force-recreate
- --no-recreate
- --no-build
- --build
- 注意:
- 一般不推荐使用该命令,推荐使用 docker-compose up --no-start 来替代
- create 默认不会创建网络配置,所以,我们一般不会在第一次创建服务时候使用,一般结合rm场景来
- 使用。
-
- 6,查看服务:
- 查看正在运行的服务
- docker-compose ps [options] [SERVICE...]
- options
- -q, --quiet 仅仅显示 IDs
- --services 显示指定的 services
- --filter KEY=VAL 显示匹配条件的services
- -a, --all 显示所有容器(即使已删除的容器)
-
-
-
- 7,启动服务
- docker-compose start [SERVICE...]
- 注意:
- 如果不加任何参数,默认开启所有内容
-
-
-
- 8,查看服务运行的日志
- docker-compose logs [options] [SERVICE...]
- Options:
- --no-color 关闭颜色输出
- -f, --follow 实时显示所有日志
- -t, --timestamps 显示时间戳
- --tail="all" 显示日志的最优几条日志
- 命令示例
- ]# docker-compose logs web1
- Attaching to nginx-web1
-
-
-
- 9,查看服务依赖的镜像
- docke-compose images [options] [SERVICE...]
- Options:
- -q, --quiet 仅仅显示 IDs
- 命令示例:
- ]# docker-compose images
- Container Repository Tag Image Id Size
- --------------------------------------------------------
- nginx-web1 nginx latest ab56bba91343 120 MB
- nginx-web2 nginx latest ab56bba91343 120 MB
-
-
- 10,查看服务映射的端口
- docker-compose port [options] SERVICE PRIVATE_PORT
- Options:
- --protocol=proto 设定服务的协议,默认是tcp
- --index=index 如果服务service存在多个容器,可以通过索引来指定显示谁的
- 命名示例
- ]# docker-compose port web1 80
- 0.0.0.0:9999
-
-
-
- 11,查看配置信息
- docker-compose config [options]
- Options:
- --resolve-image-digests 打印配置信息的时候,显示镜像的hash信息
- -q, --quiet 显示信息的时候,不输出
- --services 显示配置文件中的service记录
- --volumes 显示配置文件中的数据卷信息。
- --hash="*" 显示配置文件中的service及其加密信息
- 命令示例
- ]# docker-compose config --hash="web1"
- web1 208dc2ec31d118e4acc045cb1d916e9ed7dfd0628f2f450a279458f344342cac
- ]# docker-compose config --service
- web2
- web1
-
-
-
- 12,关闭服务:
- docker-compose stop [options] [SERVICE...]
- Options:
- -t, --timeout TIMEOUT Specify a shutdown timeout in seconds. (default:
- 10)
- 注意:
- 如果不加任何参数,默认关闭所有内容
-
-
-
- 13,删除任务:
- docker-compose rm [options] [SERVICE...]
- Options:
- -f, --force 强制删除所有
- -s, --stop 正常方式删除服务,先关闭容器再移除
- -v 删除附加到容器的所有匿名卷
- -a, --all 不推荐使用
- 注意:
- 这个docker-compose rm默认不会删除应用的网络和数据卷。
-
-
-
-
-
-
-
- 配置示例文件
- mkdir /data/compose
- cd /data/compose
- vim docker-compose.yml
-
- docker-compose.yml 文件内容
- version: '2'
- services:
- web1:
- image: nginx
- ports:
- - "9999:80"
- container_name: nginx-web1
- web2:
- image: nginx
- ports:
- - "8888:80"
- container_name: nginx-web2
-
-
- 启动配置:
- 后台启动
- docker-compose up -d
- 注意:
- 如果不加-d,那么界面就会卡在前台
- 查看运行效果
- docker-compose ps
-
-
Harbor (goharbor.io)https://goharbor.io/GitHub - goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.An open source trusted cloud native registry project that stores, signs, and scans content. - GitHub - goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.https://github.com/goharbor/harbor/
- 环境部署:
- 下载软件
- cd /data/softs
- wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-
- installer-v2.5.0.tgz
-
- 解压软件
- tar -zxvf harbor-offline-installer-v2.5.0.tgz -C /usr/local/
- cd /usr/local/harbor/
-
- 加载镜像
- docker load < harbor.v2.5.0.tar.gz
- docker images
-
-
- 备份配置
- cp harbor.yml.tmpl harbor.yml
-
- 修改配置
- hostname: 10.0.0.12
- http:
- port: 80
- #https: 注释ssl相关的部分
- # port: 443
- # certificate: /your/certificate/path
- # private_key: /your/private/key/path
- harbor_admin_password: 123456
- data_volume: /data/harbor
-
- 配置harbor
- ./prepare
- 注意:
- 这一步会生成专用的 docker-compose.yml 文件
- 启动harbor
- ./install.sh
-
-
- 检查效果
- docker-compose ps
- 浏览器访问地址 浏览器访问 10.0.0.12:80 地址,用户名: admin, 密码:123456
-
- systemd启动
- # vim /lib/systemd/system/harbor.service
- [Unit]
- Description=Harbor
- After=docker.service systemd-networkd.service systemd-resolved.service
- Requires=docker.service
- Documentation=http://github.com/vmware/harbor
- [Service]
- Type=simple
- Restart=on-failure
- RestartSec=5
- #需要注意harbor的安装位置
- ExecStart=/usr/bin/docker-compose --file /usr/local/harbor/docker-compose.yml
- up
- ExecStop=/usr/bin/docker-compose --file /usr/local/harbor/docker-compose.yml
- down
- [Install]
- WantedBy=multi-user.target
- 加载服务配置文件
- systemctl daemon-reload
- systemctl start harbor
- systemctl status harbor
- systemctl enable harbor
-
-
- 仓库测试
- 修改docker的不安全仓库
- # cat /etc/docker/daemon.json
- {"registry-mirrors": ["http://74f21445.m.daocloud.io"], "insecure-registries":
- ["10.0.0.12:80"]}
- 重启docker
- systemctl restart docker
- 检查效果
- # docker info | grep -A1 Insecure
- nsecure Registries:
- 10.0.0.19
- 登录仓库
- root@python-auto:~# docker login 10.0.0.12:80
- Username: sswang
- Password:
- WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
- Configure a credential helper to remove this warning. See
- https://docs.docker.com/engine/reference/commandline/login/#credentials-store
- Login Succeeded
- 提交实践
- docker tag goharbor/nginx-photon:v2.3.2 10.0.0.12:80/sswang/nginx-photon:v2.3.2
- docker push 10.0.0.12:80/sswang/nginx-photon:v2.3.2
- 注意:
- 提交的代码仓库必须在对应的账号里面存在,否则无法提交
- 因为默认情况下docker仓库是基于https方式来进行登录的,而我们的没有定制https所以,这里的仓
- 库地址必须是 ip:port 方式
- 下载实践
- docker pull 10.0.0.12:80/sswang/nginx-photon:v2.3.2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。