安装docker
参考文章https://blog.csdn.net/mvx01/article/details/125788688
百度简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker的基本概念
Image(镜像)、Container(容器)、Repository(仓库)
docker的简单使用
首先我们启动docker
systemctl start docker
回车后并没有什么变化
接下来使用
systemctl status docker
查看状态
普通用户查看docker服务:
sudo systemctl status docker
ps:按q退出
active(Running)说明运行成功
未运行成功时则显示inactive(dead)
那么如何关闭docker呢?
systemctl stop docker
但只使用这一句命令会报错
意思是docker并没有完全被关闭,处于一种待机状态,如果执行其他docker命令,docker将会被自动唤醒。
要想完全关闭掉只需要再执行
systemctl stop docker.socket
docker将被完全关闭
docker 镜像查看
docker image ls
或docker images
docker 容器查看
docker ps
查看为运行中的容器
docker pd -a
运行容器
这里我拿nginx容器为例
使用运行容器命令行
docker start ${CONTAINER ID}
或
docker start ${IMAGE}
发现报错,这里找了好久,大部分的答案是因为修改过防火墙,向理想自己确实之前改过防火墙,但是我重启之后也没有办法运行容器。
但是后面的报错信息跟之前说的不一样,于是我猜想是不是不是防火墙的问题,果然没错,是端口号占用的问题。
查看当前端口号占用情况
netstat -tanlp
关闭进程
kill ${PID}
#PID就是上图篮圈标明的地方
运行容器成功!
Docker Hub
接下来让我们创建一个‘仓库’
目前 Docker 官方维护了一个公共仓库 Docker Hub。
大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
推送镜像
用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub
关于仓库首先需要有一个 Docker Hub 的用户名和密码,如果没有,则需要先进行注册,注册地址为:https://hub.docker.com
注册成功后我们来到终端
输入登录命令
docker login -u ${username}
输入密码成功后显示Login Succeeded
退出命令
docker logout
参考 https://blog.csdn.net/unforgettable2010/article/details/123931720
下载仓库镜像
#下载仓库镜像并且命名为registry:2
docker pull registry:2
启动镜像
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2
其中在运行容器或镜像时可能会报如下错:
docker: Error response from daemon: failed to create shim: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/cdf3729f103e2f4cb94e25f3cfe6c21a3126428c0a977b7651ed5a77ab6d7/log.json: no such file or directory): runc did not terminate successfully:unknown.
可以参考https://blog.csdn.net/qq_42739865/article/details/121786374
将镜像标志推送到私有仓库
docker tag nginx:latest localhost:5000/nginx:latest
将镜像push到私有仓库
docker push localhost:5000/nginx:latest
因为我是连接外部服务器,不是本地访问,只需要把localhost替换成ip即可。
输入命令
curl -XGET localhost/v2/_catalog
成功将镜像上传到了本地仓库!
也可以去浏览器上查看。
(我用火狐打不开,但用谷歌就可以…redis是我之后添加的)
同理,我们再来做一遍
首先先从镜像中挑选你的心动嘉宾
docker images
将镜像标志推送到私有仓库123.453.67.89是假的,只是为了还原外服远程操作)
docker tag redis:latest 123.453.67.89:5000/redis:latest
将镜像push到私有仓库
docker push 123.453.67.89:5000/redis:latest
执行成功后会返回一个访问路径
但是一定要使用http访问,否则将会报错
文章评论