一篇文章快速搞懂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官方镜像仓库:
网易蜂巢镜像仓库:
2.查看
#查看镜像:repository为指定镜像的名称,tag为所查看的版本,不写默认查看最新版
语法:docker images [options] [repository] [:tag]
#查看本地所有镜像
docker images
#查看帮助文档
docker --help
#查看指定操作后面的参数
docker pull --help
#查看正在机器上运行的容器
docker ps
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
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
6.访问测试
注意:如果你用的虚拟机,访问地址不是localhost或127.0.0.1,而是虚拟机的地址
排查错误:
注意:如果不能访问端口,可能是开启了防火墙,没有开放端口
# 开放端口,--permanent 为永久添加,不指定此参数重启后失效
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#如果还不能访问,就关闭防火墙安全策略
setenforce 0
#查询进程是否存在
docker ps
#查看端口状态是否正常
netstat -na|grep 8080