如果是安装在云服务器上,请先检测云服务器的安全组配置是否配置(入站规则和出站规则)
Docker 使用前准备:注册 Docker 账号
点击这里跳转官网注册(https://hub.docker.com)
centOS7 安装 Docker 前系统依赖性检车
Docker 安装在红帽系统中时,要求得是64位系统及内核版本 3.10 以上。通过运行以下命令可以查看系统内核版本。
uname -r
查看 Docker 版本
docker version
使用 curl 方式安装 Docker
centOS 系统下安装 Docker 有两种方式,一种是使用 curl 方式获得 Docker 的安装脚本进行安装,一种是使用 yum 包管理器进行安装。以下介绍 curl 安装方式。
- 更新 yum 包
sudo yum update
- 执行 docker 安装脚本
curl -sSL https://get.docker.com/ | sh
- 启动 docker 服务
sudo service docker start
- 确认 docker 安装成功
sudo docker run hello-world
创建 docker 用户组
docker 默认是以 root 账号的身份运行的,所以每次我们需要运行 docker 命令时前面需要加 sudo
命令。
当系统有其他用户账号时为了避免这样,我们可以将该用户添加至 docker 用户组。
- 使用root账号登录系统
- 创建 docker 用户分组,并将相应的系统用户添加至分组
sudo usermod -aG docker 用户名
- 退出,重新登录
- 确认可以运行 docker 命令
docker run hello-world
设置 docker 服务自启动
sudo chkconfig docker on
docker 相关命令
- 登录docker账户
docker login
- 登出docker账户
docker logout
- 拉取镜像
docker pull [镜像名]
- 查找镜像
docker search [关键字]
- 删除镜像
docker rmi [镜像名]
- 提交容器在本地生成新镜像
docker commit -m "提交描述" -a "作者名" 容器ID [docker hub用户名]/指定上传的镜像名
- 推送镜像到自己的仓库
docker push [镜像名]
- 创建启动容器
docker run [系统镜像名]
- 启动一个已停止的容器
docker start [容器ID] //或者 docker restart [容器ID]
- 查看 docker 中正在运行的容器
docker ps
- 停止容器
docker stop [容器ID]
- 进入容器
docker exec [容器ID]
- 删除容器
docker rm -f [容器ID]
- 修改已有容器的端口映射
\\首先查找容器ID docker ps -a \\停止容器 docker stop 容器ID \\停止 docker 服务 systemctl stop docker \\根据ID去宿主机的 /var/lib/docker/containers/ 文件夹下查找对应的 ID 文件夹,并修改该文件夹下的 hostconfig.json 文件 vi /var/lib/docker/containers/[id]/hostconfig.json
修改完成后重启 docker 服务和容器// 修改 hostconfig.json 文件的如下位置 "PortBindings":{"容器端口号/tcp":[{"HostIp":"","HostPort":"宿主机端口号"}]}
操作实例:docker 安装配置 Nginx web服务
\\拉取镜像
docker pull nginx:latest
\\启动容器,命名为 nginx-test,并将本地 5555 端口映射到容器内部的 80 端口,设置容器后台运行
docker run --name nginx-test -p 5555:80 -d nginx
设置云服务器的安全组,放通 5555 端口后,通过浏览器 IP:5555 访问到 Nginx 的默认页面证明安装成功。
此时宿主机采用 5555 端口来映射容器的 80 端口通过域名的方式是不可访问,若想通过域名不加端口来直接访问,需修改宿主机的映射端口 5555 也为 80 或在宿主机上直接安装一个 Nginx,把宿主机的 80 端口映射到宿主机的 5555 端口。
如果需要修改 Nginx 容器的配置文件,需做一下准备:
//进入我们的 nginx 容器,并打开交互式 shell 的终端
docker exec -it nginx-test /bin/bash
//
成功打开后我们的命令行前缀会变为容器的id,而不是我们的云服务器了。
此时修改 Nginx 配置文件就和在云服务上直接配置的操作一样,Nginx.conf 文件在路径 /etc/nginx 下。
不过在容器内部没有 vim 指令,需要另行安装(注意云服务器的安全组的出站规则是否开通80端口用于上网)。
apt-get update
apt-get install vim
Nginx 配置文件挂载方式
如果不想每次都进入容器去修改配置文件,可以在宿主机内创建配置文件然后容器安装时设置挂载,这样 Nginx 就会使用宿主机的配置文件而不是内部的配置文件。
如想要将 Nginx 的项目文件路径改为宿主机下的文件路径,这样项目就不必放入容器内,只要上传到宿主机的指定文件夹内就可以了
docker run --name nginx-test -p 5555:80 -v [宿主机的文件路径]:/usr/share/nginx/html -d nginx
其中 -v 指定就是将 Nginx 容器的默认项目路径挂载在我们的宿主机路径上。
查看容器挂载目录的命令:
docker inspect [容器名] | grep Mounts -A 20