共计 1920 个字符,预计需要花费 5 分钟才能阅读完成。
先说明下我用的系统是 Linux CentOS,不同的 Linux 版本差别不大。
1. 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 设置阿里云镜像源
因为 docker 默认官方的镜像源地址是国外的, 速度很慢,这里将数据源设置为阿里云的镜像。当然国内还有其他的镜像源,在此不再一一介绍。
sudo yum-config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装 Docker-CE
Docker CE(Community Edition) 社区免费版,属于 docker 引擎。
sudo yum install docker-ce
4. 启动 Docker-CE
添加启动 Docker 服务
sudo systemctl enable docker
sudo systemctl start docker
5. 为 Docker 建立用户组
docker 命令与 Docker 引擎通讯之间通过 UnixSocket,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问,所以我们需要建立一个 docker 用户组,并且将需要访问 docker 的用户添加到这一个用户组当中来。
1. 建立 Docker 用户组
sudo groupadd docker
2. 添加当前用户到 docker 组
sudo usermod -aG docker $USER
6.GUI 管理配置 (可选配置 )
gui 管理工具 有需要则可以安装使用,没有强制要求。
Portainer
官方地址:https://portainer.io/install.html (国外地址如果不能访问建议翻墙)
安装命令:
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
然后通过自己的 IP+9000 端口访问
下面能看到自己的容器、镜像等。
7.Docker 基本概念介绍
镜像 (Image)
这里面保存了应用和需要的依赖环境 比如运行 runtime 和 webapp
为什么需要多个镜像?当开发、构建和运行容器化应用程序时,我们通常会有不同优先级。通过为这些 独立的任务提供不同镜像
容器 (Container)
镜像的实例。一个容器代表一个正在运行的应用程序、进程或服务。它由 Docker 镜像、执行环境和标准指令集组成。需要扩展服务时,我
真正将镜像跑起来的东西,镜像在容器里面。可以看作是一个完全隔离的盒子。
一个容器镜像实例 代表一个独立的进程。
Hub
远程存放镜像的平台, hub 上已经有很多制作好的镜像 比如 redis mongodb。
仓库 (repository)
仓库用来保存镜像的地方。
镜像构建完成后,可以直接在当前宿主上运行,但是 如果需要在其它服务器上使用这个镜像,就需要一个集中存储、分发镜像的服务。仓库就是这样的一个服务。
8.Docker 常用命令
docker ps – 查看目前正在运行的所有容器 -a 显示包括已经停止的容器
docker pull – 拉取镜像
docker rmi – 删除镜像 后面可以直接根据镜像 名称或者 tag 前首字母匹配
docker start container_id — 打开容器 (这里可以是容器 id 或名称)
docker stop container_id – 停止容器 (这里可以是容器 id 或名称)
docker rm – 删除容器(只有停止的容器才可以删除)
docker build – 使用 Dockerfile 创建镜像
docker exec – 容器中执行命令,例如:docker exec -it container_id(容器名或 id) /bin/bash (bin/bash 要执行的命令或工具)
docker logs — 查看 容器日志,例如:docker logs -f -t –tail 10 container_id (容器名或 id)
运行容器
docker run -it –rm -p 8000:80 –name aspnet_sample microsoft/dotnet__
–name 容器名称 , 后面跟着是镜像路径或名称
–rm 运行完后删除该容器
-p 端口映射 8000 外部端口 80 镜像里面运行的端口 将 8000 映射到镜像里面的 80
-it 输出容器命令行的内容 即容器的自身的程序输出在控制台 有点类似前台运行
-d 和 it 相反 隐藏后台运行