在服务器上安装docker服务,docker默认会从dockerhub仓库获取镜像文件,因为dockerhub的服务器在国外所以拉取镜像会很慢或者拉取失败,所以建议大家将源改为国内的,我这里就以阿里的为例
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://tzhjrf3g.mirror.aliyuncs.com"] }
sudo systemctl daemon-reload
sudo systemctl restart docker
常用命令
docker ps 查看正在运行的docker容器
docker search nginx 查询dockerhub仓库中所有的nginx镜像
docker pull nginx 从远程仓库拉取一个nginx镜像
docker run -d -p 80:80 --name mynginx nginx:latest 启动一个nginx容器
-p 80:80 前面的80为宿主机的端口,后面的端口为容器内的端口,通过-p参数可以将容器内部的80端口映射到宿主机的80端口
--name 我们为启动容器名的一个别名
-d 参数是让容器后台运行
nginx:latest 为镜像的名字和版本号,如果直接写nginx不加latest默认拉取最新的
我们使用docker ps可以看到容器已经正常运行起来了,有可能出现docker ps 以后发现没有容器的情况,那就是可能容器内部出现了错误或者已经执行完成以后容器自动退出,往往我们自己用Dockerfile制作镜像以后启动容易出现这种情况,我们可以在启动命令后面加上 tail -f /dev/null 这样我们docker ps就能看到容器可以起来了,然后我们进入docker容器内部查看内部出现了什么错误。
容器运行起来的以后我们可以通过服务器ip在浏览器访问到nginx了
docker exec -it beec /bin/bash 进去docker容器,beec为容器的id前四位