赞
踩

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口 (没有 API)。独立的进程运行在每个容器中,并拥有自己的网络和 IP 地址。容器可以在任何机器上运行,无论宿主机的操作系统和配置如何。
Docker版本分为CE社区版和EE企业版。企业版强调安全性,需付费使用。Docker支持64位版本的CentOS 7和CentOS 8及更高版本,要求Linux内核版本不低于3.10。
查看Linux版本:
注意:如果系统不支持 lsb_release -a 命令,可使用 cat /etc/redhat-release 命令。
云服务器

本机

查看Linux内核版本:
满足(要求Linux内核版本不低于3.10)

yum list installed | grep docker
yum -y install docker
- cd /var/lib/docker 默认安装路径,容器/镜像存放在此目录下。
- 镜像位置: /var/lib/docker/image
- 容器位置: /var/lib/docker/containers
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
- mkdir /usr/local/docker
- cd /usr/local/docker
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.03.0-ce.tgz
tar -zxvf docker-18.03.0-ce.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 firewalld.service
- Wants=network-online.target
-
- [Service]
- Type=notify
- # the default is not to use systemd for cgroups because the delegate issues still
- # exists and systemd currently does not support the cgroup feature set required
- # for containers run by docker
- ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
- 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 processes 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
systemctl status docker
systemctl stop docker
为什么配置加速器?
使用阿里云镜像加速器可以加速Docker的镜像拉取过程。Docker通常需要从Docker官网拉取镜像,但是官网的镜像库在国外,导致下载速度较慢。阿里云镜像加速器可以将Docker官方镜像拉取到国内的阿里云镜像库中,从而加速拉取过程。即使阿里云镜像库中没有所需的镜像,也可以使用阿里云镜像加速器来加速从Docker Hub的拉取。
查看docker 版本 docker -v

阿里云:https://cr.console.aliyun.com/cn-beijing/instances/mirrors
注意:登录阿里云账号,查看自己的镜像加速器

# 进入一下目录 [root@xiaojian /]# cd /etc/docker # 执行脚本,将JSON串反写到daemon.jsonn文件中 [root@xiaojian docker]# sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://qil6pc2r.mirror.aliyuncs.com"] } EOF # 重新加载配置 (重新加载 systemd 守护进程。当你修改了 systemd 的服务文件时,这个命令会让 systemd 重新加载配置,使新的服务配置生效。) [root@xiaojian docker]# sudo systemctl daemon-reload # 重启docker [root@xiaojian docker]# sudo systemctl restart docker
- [root@xiaojian system]# docker search registry
- NAME DESCRIPTION STARS OFFICIAL AUTOMATED
- registry The Docker Registry 2.0 implementation for s… 3867 [OK]
- verdaccio/verdaccio Verdaccio Official Docker Image: A lightweig… 186 [OK]
- distribution/registry WARNING: NOT the registry official image!!! … 57 [OK]
- google/docker-registry Docker Registry w/ Google Cloud Storage driv… 55
- apache/nifi-registry Unofficial convenience binaries for Apache N… 42
- docker/dtr Docker Trusted Registry 15
- docker/migrator Tool to migrate Docker images from a v1 regi… 8 [OK]
- vmware/registry 6
- snyk/container-registry-agent Container registry agent allows securely con… 2
- silintl/registry-proxy A reverse proxy for the Docker Registry 2.0 1 [OK]
- vmware/registry-photon 0
- drud/registry 0
- hephy/registry Docker image registry for the Hephy - Fork o… 0
- runcitadel/registry-photon 0
- okteto/registry-auth 0
- kope/registry 0
- reseaucerta/registry 0
- opensuse/registry Docker registry based on openSUSE. 0 [OK]
- hephy/registry-proxy 0
- bitnami/schema-registry Bitnami Docker Image for Schema Registry 0
- astronomerinc/ap-registry Docker registry for the Astronomer Platform. 0
- okteto/registry-configurator 0
- okteto/registry 0
- docker/trusted-registry-index Search Index for Docker Trusted Registry 0
- hephy/registry-token-refresher 0
- [root@xiaojian system]#

docker pull registry
mkdir -p /usr/local/docker/dockerhub/
docker run -d -v /usr/local/docker/dockerhub:/var/lib/registry -p 5000:5000 --restart=always --name dockerhub-registry2.0 registry
用于运行一个Docker Registry容器并将 /usr/local/docker/dockerhub 目录映射到容器的 /var/lib/registry 目录
通过这个命令,您可以在本地主机上运行一个名为 dockerhub-registry2.0 的Docker Registry容器,并将 /usr/local/docker/dockerhub 目录作为存储目录。
curl http://127.0.0.1:5000/v2
docker ps -a

--insecure-registry 是一个Docker daemon的选项,用于允许Docker从指定的不安全的注册表(insecure registry)拉取和推送镜像,即使该注册表没有进行TLS认证或者使用了自签名证书。
如果你在自己的局域网内部搭建了Harbor私有仓库,并且希望Docker从该仓库拉取和推送镜像,那么你需要在Docker daemon配置文件中(通常是/etc/docker/daemon.json)添加以下内容:
- {
- "insecure-registries": ["你的私服IP"]
- }
替换 "你的私服IP" 为你的Harbor私有仓库的IP地址或者域名。
需要注意的是,由于这会绕过TLS认证和证书检查,所以这种做法只应该在Harbor私有仓库是在你完全信任的网络内部,并且能够保证通信的安全性时使用。在生产环境中,应该尽量避免使用不安全的注册表。
docker pull hello-world
docker images
docker run hello-world

systemctl list-units --type=service
systemctl list-unit-files | grep enable
systemctl enable docker.service
systemctl disable docker.service
systemctl status docker
systemctl stop docker
- yum remove docker \
- docker-client \
- docker-client-latest \
- docker-common \
- docker-latest \
- docker-latest-logrotate \
- docker-logrotate \
- docker-selinux \
- docker-engine-selinux \
- docker-engine \
- docker-ce
sudo rm -rf /var/lib/docker
sudo userdel -r docker
sudo rm -rf /etc/docker
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。