在docker中从镜像仓库中查找(search),拉取(pull)并运行(run)web应用

-- 在docker中从镜像仓库中查找(search),拉取(pull)并运行(run)web应用
【官网】:https://www.docker.com/

应用场景

运行容器的docker run命令时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载

基础资源

CentOS7, Docker

使用须知

web应用的镜像有时运行失败,我们需要确定宿主于docker的网络是否连通。

配置步骤

A)docker查找并运行一个web应用实例。

[注]  docker的环境安装可以参考: 

VMWare+Centos7下中docker的安装,验证与运行(超详细且持续更新)


step1) docker search upload-labs.


step2)docker pull c0ny1/upload-labs    

注1: 重复执行该命令,已下载过的不会重复下载.


注2: 可通过"docker images" 查看docker本地有的镜像。


step3)下载完成后运行该web应用的镜像。

docker run -it -d -p 8080:80 aa4fdd1dd211

[注] imageid 参考前一步  docker image的命令结果。

step4)测试web应用。

注1: 确定访问哪一个IP

注2:  访问docker镜像的web应用地址

[容器运行后,无法通过局域网访问]

[异常1]

没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络

1)/etc/sysctl.conf
2)添加:net.ipv4.ip_forward=1
3)查看:sysctl net.ipv4.ip_forward  //返回net.ipv4.ip_forward = 1  则代表成功
4)systemctl restart network

[异常2]

发现有多个image

docker rmi -f {imageid}


常见问题

  • docker容器服务无法访问题解决 (本地只有一个image时)
    【解决方案】1)/etc/sysctl.conf 2)添加:net.ipv4.ip_forward=1 3)查看:sysctl net.ipv4.ip_forward //返回net.ipv4.ip_forward = 1 则代表成功 4)systemctl restart network
  • TLS handshake timeout
    【解决方案】systemctl restart docker
  • docker容器服务无法访问题解决 (本地有多个image时)
    【解决方案】删除不想关的image: docker rmi -f {imageid}

快速入门

参考资料