devops-1-docker安装

@TOC源码安装docker

yum安装 查看信息

curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum mache
cat /etc/redhat-release
Linux Server release 7.2 (Paladin)
uname -a
Linux  4.9.151-015.3000.7.x86_64 #1 SMP Tue Mar 12 19:10:26 CST 2019 x86_64 x86_64 x86_64 GNU/Linux

源码安装

下载路径

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.8.tgz
tar zxvf docker-20.10.8.tgz
cp docker/* /usr/bin/
 vi /etc/systemd/system/docker.service

添加内容

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewall.service

Wants=network-online.target

[Service]

Type=notify

#the default is not to use systemd for cgroups because the delegay issues still

#exists and systemd currently does not support the cgroup feature set required

#for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

#Having non-zero Limit*s causes performance problems due to accounting overhead

#in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

#Uncomment TasksMax if your systemd version supports it.

#Only Systemd 226 and above support this version

#TasksMax=infinity

TimeoutStartSec=0

#set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

#kill only the docker process, not all process in the cgroup

KillMode=process

#restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

配置服务

chmod +x /etc/systemd/system/docker.service

systemctl daemon-reload   #重新加载配置(每次修改文件后需执行)

systemctl start docker.service

systemctl status docker.service

systemctl enable docker.service     ##使服务开启自启

vi /etc/docker/daemon.json

{
    "registry-mirrors": ["https://registry.docker-cn.com","https://registry.docker-cn.com"]
}
service docker restart
docker info

如果想修改docker镜像路径

du -sh /var/lib/docker/
320K	/var/lib/docker/

service docker stop
mkdir -p  var/lib/docker
ln -s /home/xxxx/tmp/docker/var/lib/docker /var/lib/docker
service docker start
ls -ltr | grep docker

拉取镜像

docker run -d -p 6379:6379 --name redis redis:latest
#du -sh /var/lib/docker/
#240M	/var/lib/docker/
docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS                    NAMES
f0e742b9be40   redis:latest   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6379->6379/tcp   redis

brew not git repository

haogeoyes@B-V1WTQ05P-0318 ~ % brew install git
fatal: not in a git directory
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-cask, skipping update!
fatal: not in a git directory
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-core, skipping update!
fatal: not in a git directory
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update!
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/gettext-0.21.arm64_monterey.bottle.tar.gz
Already downloaded: /Users/haogeoyes/Library/Caches/Homebrew/downloads/1de12628f1e5811fc7f479121352d4b4ef79b0747ca029098eb01dab21b5152e--gettext-0.21.arm64_monterey.bottle.tar.gz
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/pcre2-10.40.arm64_monterey.bottle.tar.gz
Already downloaded: /Users/haogeoyes/Library/Caches/Homebrew/downloads/1e1f0fb3ee388c2b582280953cd239d1d312b159c8f2ddf91d947d8928f7f6e6--pcre2-10.40.arm64_monterey.bottle.tar.gz
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/git-2.37.1.arm64_monterey.bottle.tar.gz
Already downloaded: /Users/haogeoyes/Library/Caches/Homebrew/downloads/aa30898350ce97da434638ba666a3b2b293f7db316ba17e092632a049bda3abe--git-2.37.1.arm64_monterey.bottle.tar.gz
==> Installing dependencies for git: gettext and pcre2
==> Installing git dependency: gettext
fatal: not in a git directory
Error: Command failed with exit 128: git

此原因是因为brew 配置问题
haogeoyes@B-V1WTQ05P-0318 ~ % brew -v
Homebrew 3.5.7-11-g8a153de
fatal: unsafe repository ('/opt/homebrew/Library/Taps/homebrew/homebrew-core' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
Homebrew/homebrew-core (no Git repository)
fatal: unsafe repository ('/opt/homebrew/Library/Taps/homebrew/homebrew-cask' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
Homebrew/homebrew-cask (no Git repository)

解决此问题先创建目录

haogeoyes@B-V1WTQ05P-0318 ~ % mkdir /opt/homebrew/Library/Taps/homebrew/homebrew-cor
haogeoyes@B-V1WTQ05P-0318 ~ % mkdir /opt/homebrew/Library/Taps/homebrew/homebrew-cask
mkdir: /opt/homebrew/Library/Taps/homebrew/homebrew-cask: File exists
haogeoyes@B-V1WTQ05P-0318 ~ % git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
haogeoyes@B-V1WTQ05P-0318 ~ % git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
docker
docker ps
docker images
docker search golang
docker pull golang
docker pull redis
docker rmi -f golang
Untagged: golang:latest
Untagged: golang@sha256:c72fa9afc50b3303e8044cf28fb358b48032a548e1825819420fd40155a131cb
Deleted: sha256:276895edf9673267f47528e8a99401f2d2947f6c9c00490f773d5ed8f559bef2

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS      NAMES
bceb2d3927de   3e42dd4e79c7   "docker-entrypoint.s…"   59 minutes ago   Up 59 minutes   6379/tcp   nifty_black

停止虚拟机
docker stop bceb2d3927de
启动虚拟机
docker start u1
#导出
docker save redis  -o redis.tar
#加载
docker load -i redis.tar
Loaded image: redis:latest

docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
redis        latest    3e42dd4e79c7   3 days ago   117MB
#镜像tag
docker tag redis:latest redis:pro
docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
redis        latest    3e42dd4e79c7   3 days ago   117MB
redis        pro       3e42dd4e79c7   3 days ago   117MB

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
docker run -it -d --name redis_docker redis:pro /bin/bash
docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS      NAMES
7246c5799195   redis:pro   "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes   6379/tcp   redis_docker
docker rename 容器ID/容器名 新容器名
docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID
#-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
exit
# 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q
docker stop 容器ID/容器名
docker restart 容器ID/容器名
docker start 容器ID/容器名
docker kill 容器ID/容器名

#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
docker run -d -p 6379:6379 --name redis --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"

虚拟机创建镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
docker commit eafd9111ada6 docker/lua
docker commit -m='pipline流水线' -a='haogeoyes' 82e18d339fff haogeoyes/jenkins:v1.2
docker push haogeoyes/jenkins:v1.2

#  删除异常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'` 
 
#  删除名称或标签为none的镜像
docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`
查找大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
查找制定大小we年
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr |grep '/var/lib/docker/overlay2/*'

完全清理镜像
docker rmi -f imagename
cd /var/lib/docker 
rm -fr *
可用镜像
docker ps -a
docker search centos
docker pull search
# docker run -it -d --name test centos /bin/bash

docker attach 44fc0f0582d9  
docker exec -it 23 /bin/bash
docker -itd centos
docker run -di -v /var/lib/docker:/mnt -p 6666:6666 centos
docker exec -it 1c63a9800e7c /bin/bash
docker 查看
空间占用   
#docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          27        24        7.538GB   3.407GB (45%)    镜像
Containers      57        19        1.824GB   1.824GB (99%)  容器
Local Volumes   11        2         460B      460B (100%)  本地卷
Build Cache     0         0         0B        0B					构建缓存

docker rmi -f 镜像id 强制删除镜像
docker rmi -f $(docker images -qa)

docker 的虚悬镜像:仓库名、标签名都是的镜像 ,俗称dangling image

下载镜像
docker pull centos:centos7
wget -O ./CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

docker build -t gozero:v1 .

Dockerfile

java 应用部署
Dockerfile

FROM openjdk:8-jdk-slim	# 源镜像
LABEL maintainer=haogeoyes # 作者

COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","java-demo-0.0.1-SNAPHOT.jar"] # 启动命令

docker build -t java-demo:v1.0 -f Dockerfile . # 当前目录下工作
docker build -t python:v3.ali -f Dockerfile-python3 . # 构建python3镜像

gozero安装

FROM centos:centos7
RUN yum -y install wget
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN wget  -O /etc/yum.repos.d/go-repo.repo https://mirror.go-repo.io/centos/go-repo.repo
# RUN yum clean all
# RUN yum makecache
RUN yum -y install go
RUN mkdir -p  /root/go/bin
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
RUN go install github.com/zeromicro/go-zero/tools/goctl@latest
https://gitee.com/kevwan/go-zero/tree/master/tools/goctl

vi ~/.bash_profile
export PATH=$PATH:/Users/chenhaohao/go/bin
source ~/.bash_profile
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-osx-x86_64.zip
yum -y install unzip
unzip protoc-21.4-osx-x86_64.zip
mv bin/protoc ../go/bin/
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-osx-x86_64.zip


docker build -t gozero:v1 .

虚拟机备份镜像
docker export 379 > 虚拟机镜像.tar
导入镜像
cat 虚拟机镜像.tar | docker import - redis:3.7
直接docker 备份
docker commit 85e12a9736b7 gozero:latest
启动虚拟机
docker run -itd -v /var/lib/docker:/data -p 6666:6666 gozero

容器命令
docker system df  查看占用空间
docker system prune -a 清理无用空间
docker  logs xxxx -f 动态跟踪日志
docker pull centos
docker pull ubuntu
启动交互式容器
docker run 
--name=“容器名字”
-d 后台
-i 交付时 -t伪终端 同时使用
-P 随机端口映射
-p  指定端口映射
docker run -itd ubuntu /bin/bash
docker run -it --name=chh ubuntu /bin/bash
docker exec -it  379 bin/bash
exit 退出  ctrl + p + q 退出不停止容器

进入容器
docker attach  进入容器启动命令的终端,exit退出会导致容器停止
exec  打开新的终端,ctr p q 可以启动新的进程exit退出

#docker ps | grep ubun
867b15b4b343   ubuntu                                              "/bin/bash"              17 seconds ago   Up 16 seconds             chh
379abc0f446b   ubuntu                                              "/bin/bash"              2 minutes ago    Up 2 minutes              fervent_black


删除退出容器
docker rm -f $(docker ps -a -q)
#docker ps -a | grep Exit | awk '{print $1}' | xargs docker rm
fe13e90001b6
867b15b4b343
11abcc9fcd48
5b2ce5e429b4
d8d91b4b9dc8

docker ps -a | grep Created | awk '{print $1}' | xargs docker rm -f

查看容器内进程
#docker top 379
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                84724               84683               0                   Sep05               ?                   00:00:00            /bin/bash


#docker inspect 379



[
    {
        "Id": "379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3",
        "Created": "2022-09-05T09:38:01.265151728Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 84724,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-09-05T09:38:01.684584424Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1",
        "ResolvConfPath": "/home/tianyan/tmp/docker/var/lib/docker/containers/379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3/resolv.conf",
        "HostnamePath": "/home/tianyan/tmp/docker/var/lib/docker/containers/379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3/hostname",
        "HostsPath": "/home/tianyan/tmp/docker/var/lib/docker/containers/379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3/hosts",
        "LogPath": "/home/tianyan/tmp/docker/var/lib/docker/containers/379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3/379abc0f446ba3a2b4e97d270f93fe171ee0f1b610933c2a9d0c09b029c8ada3-json.log",
        "Name": "/fervent_black",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/home/tianyan/tmp/docker/var/lib/docker/overlay2/b63dd2960cba2dcd0baa2d60fd761cea352a472e85d2038d04562946c071ffd3-init/diff:/home/tianyan/tmp/docker/var/lib/docker/overlay2/57db8b633ef282029ba46e19e4fa9641863672a46b3862f10a332f35f66c747f/diff",
                "MergedDir": "/home/tianyan/tmp/docker/var/lib/docker/overlay2/b63dd2960cba2dcd0baa2d60fd761cea352a472e85d2038d04562946c071ffd3/merged",
                "UpperDir": "/home/tianyan/tmp/docker/var/lib/docker/overlay2/b63dd2960cba2dcd0baa2d60fd761cea352a472e85d2038d04562946c071ffd3/diff",
                "WorkDir": "/home/tianyan/tmp/docker/var/lib/docker/overlay2/b63dd2960cba2dcd0baa2d60fd761cea352a472e85d2038d04562946c071ffd3/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],  
        "Config": {
            "Hostname": "379abc0f446b",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "ubuntu",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "ded90d948611c7ab91939bb3ca39a8cfe77d0b02e740920320529a08f4a36f0c",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/ded90d948611",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "38dfa70fd51559c35d86f9893d700a3fd16ed73d1d2666620dfc34a925a56fe0",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "d656231de20d84c89463cbada216ce2362833c9b1fc135428690b1a018c8f247",
                    "EndpointID": "38dfa70fd51559c35d86f9893d700a3fd16ed73d1d2666620dfc34a925a56fe0",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

查看docker日志
docker lgos c9db

#docker ps | grep redis
c9db90e706cc   redis                                               "docker-entrypoint.s…"   10 days ago    Up 10 days              k8s_test-k8s_test-pod_default_0a4e6e4e-6326-4f7d-b7be-2a5e1243a34c_0

[root@diagnosis-tool011164062250.na62 /root] Sky_Eye_System_Unline_250_master
#docker exec -it c9 /bin/bash
root@test-pod:/data#
root@test-pod:/data#
root@test-pod:/data# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a

docker 拷贝文件
docker cp 容器id:路径  目标主机路径
docker cp /root/sa_install.log  379:/
docker镜像
docker pull ubuntu 
分层下载, UnionFS 联合文件系统:分层、轻量聚合挂载文件系统
docker  bootfs 引导区文件系统 bootloader  内核 kernel
分层的目的,资源共享,方便迁移复用 

提交容器副本 生成新镜像
dokcer commit -m=“我的镜像”  -a="作者"  
docker commit -m = "add vim" -a ="haogeoyes"  369xxxx3920 haogeoyes/gozero:1.1
上传镜像至阿里云
登录阿里云镜像仓库
#docker login --username=haogeoyes registry.cn-hangzhou.aliyuncs.com
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 359xxxx   registry.cn-hangzhou.aliyuncs.com/haogeoyes/gozero:1.1
docker push    registry.cn-hangzhou.aliyuncs.com/haogeoyes/gozero:1.1


拉取镜像
docker  pull registry.cn-hangzhou.aliyuncs.com/haogeoyes/gozero:1.1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

docker 私有仓库

搭建本地镜像仓库
docker pull registry
下载 仓库源镜像 只有26M
#docker pull registry
Using default tag: latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete
0d96da54f60b: Pull complete
5b27040df4a2: Pull complete
e2ead8259a04: Pull complete
3790aef225b9: Pull complete
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
下载镜像
 
启动镜像源
#docker run -d -p 5000:5000 -v /home/tmp:/tmp/registry --privileged=true registry
cdf80c9eff8896092cab82901ad04d170f58dfc50868f79d9753643891d3f1ac
挂在目录经常出现 open directory : Permission denied
 --privileged=true   具备root权限

#docker ps | grep reg
cdf80c9eff88   registry                                            "/entrypoint.sh /etc…"   44 seconds ago   Up 43 seconds   0.0.0.0:5000->5000/tcp   angry_matsumoto

#curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":[]}

推送镜像到本地私服库

克隆镜像
docker tag gozero:1.2 127.0.0.1:5000/gozero:1.2
默认不允许http方式推送镜像,告诉本机的5000端口私服库是安全的
vi /etc/docker/daemon.json
"insecure-registries":["127.0.0.1:5000"]
重启docker  
systemctl  restart docker

推送
docker push 127.0.0.1:5000/gozero:1.2

测试:
docker tag ubuntu:latest 11.xx.xx.250:5000/ubuntu:1.1

#docker push 11.xx.xx.250:5000/ubuntu
Using default tag: latest
The push refers to repository [11.xx.xx.250:5000/ubuntu]
Get "https://11.xx.xx.250:5000/v2/": http: server gave HTTP response to HTTPS client

#docker push 11.xx.xx.250:5000/ubuntu:1.1
The push refers to repository [11.xx.xx250:5000/ubuntu]
9f54eef41275: Pushed
1.1: digest: sha256:7cc0576c7c0ec2384de5cbf245f41567e922aab1b075f3e8ad565f508032df17 size: 529
验证镜像
#curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}

删除镜像
#docker rmi -f 11.164.62.250:5000/ubuntu:1.1
Untagged: 11.164.62.250:5000/ubuntu:1.1
Untagged: 11.164.62.250:5000/ubuntu@sha256:7cc0576c7c0ec2384de5cbf245f41567e922aab1b075f3e8ad565f508032df17

拉取本地私服镜像
docker pull 11.xx.xx.250:5000/ubuntu:1.1

容器数据卷持久化 -v /tmp:/tmp --privileged=true ubuntu
只读 -v /tmp:/tmp:ro ubuntu

docker inspect 379
mount 挂载目录
容器卷 继承
docker run -it --privileged=true --v /tmp:/tmp --name u1 ubuntu 
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu 

docker 镜像部署过程
搜索、拉取、查看、启动、停止、移除

docker run -d -p 8080:8080 --name t1 tomcat
docker run -d -P --name t1 tomcat
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
mysql -uroot -p
数据库目录挂在卷
docker run -d -p 3306:3306 --privileged=true 
-v /mysql/log:/var/log/mysql 
-v /mysql/data:/var/lib/mysql 
-v /mysql/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值