下载存放的路径: “graph”:”/data/docker” docker目录信息 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s https://f1361db2.m.daocloud.io docker的存储默认有两种方式1、数据卷2、数据卷容器 5.1、容器安装nginx 5.2、创建自己的镜像: 启动创建的镜像:docker run -it –name mycentos-nginx xiajing/mynginx:v1 5.4、启动自己安装的容器: Dockerfile构建步骤:1、基础镜像信息 2、维护者信息 3、镜像操作指令 4、容器启动执行的命令 参考:https://blog.csdn.net/egworkspace/article/details/80518647 在腾讯云申请免费的证书 安装配置一个nginx 认证命令信息:htpasswd -c /usr/local/nginx/conf/dockerpasswd Docker #输入密码 docker下载一个Docker Registry 基于SSL证书改造Registry docker run -d [root@localhost ~]# docker login docker.m5c.top [root@localhost ~]# docker login https://docker.m5c.top
作者:京哥 docker技术介绍
1、docker改变了什么?
2、docker的安装
由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看内核版本 Docker 要求 CentOS 系统的内核版本高于 3.10
[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64
升级内核:yum –y update kernel
首先安装 Docker 必要依赖包 :
yum install -y yum-utils device-mapper-persistent-data lvm2
查看仓库中docker版本
[root@localhost ~]# yum list docker-ce –showduplicates | sort -r
[root@localhost ~]# yum install -y docker-ce #安装docker
验证:
[root@localhost ~]# echo $?
0
[root@localhost ~]# docker -v
Docker version 19.03.4, build 9013bf583a
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker.service
[root@localhost ~]# systemctl enable docker #开机启动
因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub
依次执行以下命令
echo “OPTIONS=’–registry-mirror=https://mirror.ccs.tencentyun.com’” >> /etc/sysconfig/docker
systemctl daemon-reload
systemctl restart docker.service[root@localhost ~]# vi /etc/docker/daemon.json { "registry-mirrors": [ "https://registry.docker-cn.com"],"graph":"/data/docker" }
docker控制台日志路径:/var/lib/docker/containers #nginx控制台日志也在此
镜像加速:
https://www.daocloud.io/mirror#accelerator-doc3、docker命令
3.1、查看远程仓库的镜像: docker search centos -s 10 #前10名的 3.2、下载远程仓库的镜像: docker pull centos #centos是远程镜像的名字 3.3、查看本地下载的镜像: docker images 3.4、保存镜像到本地: docker save centos > /opt/centos2019.tar.gz 3.5、删除本地镜像:docker rmi 0f3e07c0138f #0f3e07c0138f是IMAGE ID 多个ID请删除名字:版本 3.6、导入本地镜像包:docker load < /opt/centos2019.tar.gz 3.7、启动一个镜像容器:docker run --name mycentos -t -i centos /bin/bash 3.8、查看镜像运行的容器:docker ps -a 3.9、退出已进入的容器:exit 3.10、重启之前的容器:docker start 07d9dc0f9d90 #07d9dc0f9d90 容器的 id 3.11、进去容器:docker attach 07d9dc0f9d90 #退出后容器也退出 容器是单进程的 3.12、获取容器的pid:docker inspect --format "{{.State.Pid}}" 07d9dc0f9d90 3.13、进入容器:nsenter -t $pid -u -i -p 3.14、停止一个容器:docker stop 07d9dc0f9d90 3.15、删除一个容器:docker rm 07d9dc0f9d90 3.16、说明:删除一个运行的容器需要加-f
4、docker网络和存储
说明:docker默认使用端口映射来让容器的某一个端口映射对外,一种是随机映射、一种是指定映射
4.1、ip a #查询有一个nat模式的docker 0网卡
4.2、随机映射:docker run -d -P –name mytestnginx nginx
4.3、查看docker运行进程的日志:docker logs 7d1c49bb9d3d # 7d1c49bb9d3d是容器的id
4.4、指定端口映射:docker run -d -p 88:80 –name mynginx88 nginx
说明:Docker提供三种不同的方式将数据从宿主机挂载到容器中:
volumes,bind mounts和tmpfs
volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)
bind mounts:可以存储在宿主机系统的任意位置 (相当于做个软连接)
tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统(很少用)
管理卷:
[root@VM_192_8_centos ~]# docker volume ls #查询已创建的volume
[root@VM_192_8_centos ~]# docker volume create nginx-vol #创建nginx使用的存储卷
[root@VM_192_8_centos ~]# docker volume inspect nginx-vol #查询创建的卷的信息
用卷创建一个容器:
[root@VM_192_8_centos ~]# docker run -d -it –name=nginx-test –mount src=nginx-vol,dst=/usr/share/nginx/html nginx
[root@VM_192_8_centos ~]# docker run -d -it -p 88:80 –name=nginx-test -v nginx-vol:/usr/share/nginx/html nginx
进入容器:[root@VM_192_8_centos _data]# docker exec -it nginx-test bash root@dbc79dc3099a:/# cd /usr/share/nginx/html/ root@dbc79dc3099a:/usr/share/nginx/html# ls 50x.html index.html xiajing.html root@dbc79dc3099a:/usr/share/nginx/html# vi xiajing.html bash: vi: command not found root@dbc79dc3099a:/usr/share/nginx/html# echo "2019" > xiajing.html
4.5、数据卷:docker run -it -v /opt/test:/opt –name mycentos centos
4.6、数据卷容器:
5、 手工创建镜像
说明:https://mirrors.aliyun.com/epel/ 下载rpm源[root@localhost ~]# docker run --name mynginx -it centos [root@9bbcb0090fb2 /]# rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm Retrieving https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm warning: /var/tmp/rpm-tmp.KarnVr: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:epel-release-7-12 ################################# [100%] [root@9bbcb0090fb2 /]# yum install -y nginx
[root@localhost ~]# docker commit -m "my frist docker" 9bbcb0090fb2 xiajing/mynginx:v1 sha256:76bfcefe561365d043e0e2caa7465a74a56725e96e03d4dd510791caa56ae36f [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 540a289bab6c Less than a second ago 126MB centos latest 0f3e07c0138f Less than a second ago 220MB xiajing/mynginx v1 76bfcefe5613 9 seconds ago 331MB [root@localhost ~]#
修改容器nginx前台运行:[root@ca5a843f5fc8 /]# vi /etc/nginx/nginx.conf
daemon off;
5.3、再次创建前台运行nginx镜像:[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ca5a843f5fc8 xiajing/mynginx:v1 "/bin/bash" 4 minutes ago Exited (130) 11 seconds ago mycentos-nginx 9bbcb0090fb2 centos "/bin/bash" 27 minutes ago Exited (130) 15 minutes ago mynginx c11596e6d6d9 centos "/bin/bash" 39 minutes ago Exited (127) 29 minutes ago mydata fac7cbcdcdb1 centos "/bin/bash" 45 minutes ago Exited (0) 42 minutes ago mytestcentos1 63e22e4c2b1a centos "/bin/bash" 53 minutes ago Exited (0) 53 minutes ago mytestcentos ba951ffe5a8d centos "/bin/bash" About an hour ago Exited (0) About an hour ago mycentos 6eaf16f7b61f nginx "nginx -g 'daemon of…" 3 hours ago Up 3 hours 0.0.0.0:88->80/tcp mynginx88 [root@localhost ~]# docker commit -m "my 2 docker" ca5a843f5fc8 xiajing/mynginx:v2 sha256:93eb1231cfcd0601ce78abb2b8529370b41a3cebf30fca4df027dfb19f1651d9 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 540a289bab6c Less than a second ago 126MB centos latest 0f3e07c0138f Less than a second ago 220MB xiajing/mynginx v2 93eb1231cfcd 50 seconds ago 331MB xiajing/mynginx v1 76bfcefe5613 11 minutes ago 331MB [root@localhost ~]#
docker run -d -p 85:80 –name mycentos-nginx2 xiajing/mynginx:v2 nginx # nginx 是命令启动nginx
docker run -d -v /opt/test:/usr/share/nginx/html -p 89:80 –name mycentos-nginx3 xiajing/mynginx:v2 nginx6、Dockerfile构建镜像
Dockerfile构建命令:
7、docker运输
使用自己申请的域名m5c.top申请一个docker.m5c.top的腾讯云ssl证书,不然需要自己使用OpenSSL自己生成,这也是很多博文所提到的做法,不保证成功;
安装配置一个nginx,使用代理可以使用用户认证;(nginx可选)
nginx的http配置:upstream docker { zone myapp1 64k; server 127.0.0.1:5000 weight=1 max_fails=3 fail_timeout=30s; } server { listen 443; server_name docker.m5c.top; ssl on; ssl_certificate /usr/local/ssl_nginx/1_docker.m5c.top_bundle.crt; ssl_certificate_key /usr/local/ssl_nginx/2_docker.m5c.top.key; client_max_body_size 0; chunked_transfer_encoding on; location / { auth_basic Docker"; auth_basic_user_file /usr/local/nginx/conf/dockerpasswd; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass https://docker; } }
我们的用户是Docker 密码是 xiajing3673
命令:docker pull registry:2
注意:笔者在pull的时候,指定了TAG,即为使用v2版本的registry,对于v1版本的registry,读者大可不必在意了,基本上是淘汰了;
运行命令:docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/registry –restart=always –name registry registry:2
验证,读者可以拉取一个busybox镜像(因为体积小),进行实验:
docker pull busybox
拉取最新的busybox镜像后,再给其打标签,准备发布到Registry中:
docker tag busybox localhost:5000/bosybox:v1.0
最后再推送给Registry;
docker push localhost:5000/bosybox:v1.0
此时,Registry就有了busybox:v1.0镜像了,这时可以不用再去Docker Hub上面拉取了,通过自建的Registry即可
docker pull localhost:5000/bosybox:v1.0
如果想查看远程仓库有哪些镜像,可以运行如下命令: curl https://localhost:5000/v2/_catalog
说明:到此为止,我们已经搭建了一个Docker Registry的“半成品”,说是“半成品”是因为这个Registry只能在本机正常工作,如果在其他主机上试图推送镜像上来,结果是失败的。
我的域名docker.m5c.top的ssl腾讯证书已配置到nginx
在nginx.conf配置文件中,需要注意因为对Registry的访问都是通过REST API完成的,而且是HTTPS的访问协议,所以location节点的配置中,proxy_pass配置的是https://registry,如果配置成https://registry,一旦Docker Registry启用了SSL后,是访问不通的。
重新启用一个容器: docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/registry -v /usr/local/ssl_nginx:/ssl_nginx -e REGISTRY_HTTP_TLS_CERTIFICATE=/ssl_nginx/1_docker.m5c.top_bundle.crt -e REGISTRY_HTTP_TLS_KEY=/ssl_nginx/2_docker.m5c.top.key --restart=always --name registry registry:2
如果没有安装nginx的读者,可运行这条命令: ```
-p 443:443
-v /usr/local/registry:/var/lib/registry
-v /usr/local/certs:/certs
-e REGISTRY_HTTP_ADDR=0.0.0.0:443
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt
-e REGISTRY_HTTP_TLS_KEY=/certs/server.key
–restart=always
–name registry
registry:2 可以浏览器访问:https://docker.m5c.top/v2/_catalog 接下来,我们实验一下在另外一台主机,重复上述步骤,依然可以成功; * **异常处理** 服务器时间不一致异常
Username: Docker
Password:
Error response from daemon: Get https://docker.m5c.top/v2/: x509: certificate has expired or is not yet valid此异常时服务器时间不同步导致的;使用 ntpdate cn.pool.ntp.org 同步时间 * **其它服务器测试**
[root@localhost ~]# docker tag xiajing/mynginx:v2 docker.m5c.top/mynginx:v1.0
[root@localhost ~]# docker push docker.m5c.top/mynginx:v1.0
The push refers to repository [docker.m5c.top/mynginx]
7ed5b7f8d9f7: Layer already exists
1acb874f057c: Layer already exists
9e607bb861a7: Layer already exists
v1.0: digest: sha256:64bae4b0ef2a7d75b91d613bf8a06c36a8dc9716117676ad559d7f788992b499 size: 949
[root@localhost ~]#
[root@localhost ~]# docker pull docker.m5c.top/mynginx:v1.0
v1.0: Pulling from mynginx
Digest: sha256:64bae4b0ef2a7d75b91d613bf8a06c36a8dc9716117676ad559d7f788992b499
Status: Downloaded newer image for docker.m5c.top/ mynginx:v1.0
docker.m5c.top/mynginx:v1.0
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 540a289bab6c 6 days ago 126MB
centos latest 0f3e07c0138f 3 weeks ago 220MB
docker.m5c.top/zhrtcentos latest 0f3e07c0138f 3 weeks ago 220MB
xiajing/mynginx v2 93eb1231cfcd 6 weeks ago 331MB
docker.m5c.top/mynginx v1.0 93eb1231cfcd 6 weeks ago 331MB
xiajing/mynginx v1 76bfcefe5613 6 weeks ago 331MB
[root@localhost ~]#
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算