Docker 容器使用
Posted 答案
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 容器使用相关的知识,希望对你有一定的参考价值。
公有仓库
docker提供了一个类似于github的仓库dockerhub, 网址 https://hub.docker.com/ 需要注册使用
注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag
docker tag wl/centos-vim wanglan/centos-vim
语法是: docker tag 仓库名 wanglan/仓库名
注册docker id后,在linux中登录dockerhub
[root@localhost mydocker]# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don\'t have a Docker ID, head over to https://hub.docker.com to create one. Username:
上传镜像(上传hello-world)
[root@localhost mydocker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 94e814e2efa8 2 days ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB centos latest 1e1148e4cc2c 3 months ago 202MB [root@localhost mydocker]# docker tag fce wanglan/hello-world [root@localhost mydocker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 94e814e2efa8 2 days ago 88.9MB hello-world latest fce289e99eb9 2 months ago 1.84kB wanglan/hello-world latest fce289e99eb9 2 months ago 1.84kB centos latest 1e1148e4cc2c 3 months ago 202MB [root@localhost mydocker]# docker push wanglan/hello-world The push refers to repository [docker.io/wanglan/hello-world] af0b15c8625b: Mounted from library/hello-world latest: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
查看
私有仓库
但是这种镜像仓库是公开的,其他人也是可以下载,并不安全,因此还可以使用docker registry官方提供的私有仓库
官方提供的私有仓库docker registry用法
https://yeasy.gitbooks.io/docker_practice/repository/registry.html
一条命令下载registry镜像并且启动私有仓库容器
私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下,端口映射容器中的5000端口到宿主机的5000端口 [root@localhost mydocker]# docker run -d \\ -p 5000:5000 \\ -v /opt/data/registry:/var/lib/registry \\ registry
检查启动registry容器
[root@localhost mydocker]# docker ps
测试连接容器
[root@localhost mydocker]# telnet 192.168.11.174 5000 Trying 192.168.11.174... Connected to 192.168.11.174. Escape character is \'^]\'. 或输入ip:端口访问
修改镜像tag,以docker registry的地址端口开头
[root@localhost mydocker]# docker tag hello-world 192.168.11.174:5000/hello-world
Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据
[root@localhost opt]# cat /etc/docker/daemon.json {"registry-mirrors": ["http://95822026.m.daocloud.io"], "insecure-registries":["192.168.11.174:5000"] }
修改了docker配置文件,需要制定docker服务,去加载这些代码,编辑这个文件 /lib/systemd/system/docker.service ,写入新的配置
vim /lib/systemd/system/docker.service
写入如下配置,改成和我一样就行
[Service]
EnvironmentFile=-/etc/docker/daemon.json
修改了docker配置文件,重新加载docker
[root@localhost opt]# systemctl daemon-reload
重启docker
[root@localhost opt]# systemctl restart docker
由于重启了docker,私有仓库的容器也挂了,需要重新启动
docker run --privileged=true -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
推送本地镜像到 私有仓库
[root@localhost system]# docker push 192.168.11.174:5000/hello-world
以上是关于Docker 容器使用的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139
Springboot 容器使用 docker-compose 连接到 mongo 容器的 503 错误代码