欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一篇文章快速搞懂docker的使用

程序员文章站 2024-03-24 09:37:46
...

docker的使用

镜像仓库地址

docker官方:https://hub.docker.com
网易蜂巢:https://c.163yun.com/hub#/library

1、拉取镜像

docker pull 的拉取过程:docker pull告诉docker deamon拉取某一个镜像,docker deamon会在本地仓库查找是否有这个镜像(注意,镜像是到版本的,如果拉取的镜像版本和仓库中的镜像版本不一致,则就是没有这个镜像),找到了就不做操作,如果本地仓库没有,就会到docker的仓库中拉取与之对应版本的镜像到本地仓库

#options和tag都是可选的,tag为指定版本号,不指定tag默认拉取最新的latest版本
语法:docker pull [options] name [:tag]

--下面举几个例子
#拉取最新版本的nginx
docker pull nginx

#拉取perl版本的nginx
docker pull nginx:perl

--拉取指定仓库镜像(这里用的是网易蜂巢)
#从网易蜂巢拉取版本为latest的nginx,指定其他版本可在网站版本中寻找
docker pull hub.c.163.com/library/nginx:latest

docker官方镜像仓库:
一篇文章快速搞懂docker的使用
网易蜂巢镜像仓库:
一篇文章快速搞懂docker的使用

2.查看

#查看镜像:repository为指定镜像的名称,tag为所查看的版本,不写默认查看最新版
语法:docker images [options] [repository] [:tag]
#查看本地所有镜像
docker images

#查看帮助文档
docker --help
#查看指定操作后面的参数
docker pull --help

#查看正在机器上运行的容器
docker ps

一篇文章快速搞懂docker的使用

3.启动容器

docker run的执行过程:执行docker run会首先告诉docker deamon我要启动容器,docker deamon在本地仓库中查找是否存在该镜像,如果不存在会先执行docker pull操作,然后将本地仓库的镜像运行起来作为docker的容器

#image为镜像名称,command为运行起来时要执行的命令,arg为执行command命令时所需要的参数
docker run [options] image [:tag] [command] [arg...]

--下面举几个例子
#前台方式启动nginx,run后面的名称可通过docker images查看得知
docker run hub.c.163.com/library/nginx
#后台运行:-d为后台方式运行,会返回64位id
docker run -d hub.c.163.com/library/nginx

#停止容器运行,078e为容器id简写,只要保证找到的容器唯一即可
docker stop 078e

#重启容器
docker restart 078e

#查看是否启动
docker ps

输出的一串字符为容器的id
一篇文章快速搞懂docker的使用

4.查看容器内部结构

#查看帮助,可看到各个参数是什么意思
docker exec --help
#i为保证输入有效,t为打开一个伪命令终端,078e为容器id开头的简写,只要保证找到的容器唯一即可
docker exec -it 078e bash
#查看nginx所在位置
which nginx
#退出
exit

5.docker的端口映射

#-p为端口映射,8080为主机的端口,80为容器的端口
docker run -d -p 8080:80 hub.c.163.com/library/nginx
#查看8080端口状态
netstat -na|grep 8080

一篇文章快速搞懂docker的使用

6.访问测试

注意:如果你用的虚拟机,访问地址不是localhost或127.0.0.1,而是虚拟机的地址
一篇文章快速搞懂docker的使用
排查错误:

注意:如果不能访问端口,可能是开启了防火墙,没有开放端口
# 开放端口,--permanent 为永久添加,不指定此参数重启后失效
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#如果还不能访问,就关闭防火墙安全策略
setenforce 0
#查询进程是否存在
docker ps
#查看端口状态是否正常
netstat -na|grep 8080
相关标签: Linux Docker