Docker简介
docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
下面我们一步步学习如何使用docker。
环境选择
1.管理工具 - Docker Engine
2.runtime - runc
3.操作系统 - Ubuntu
安装Docker
Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本。我们用CE即可。
1.首先安装包,允许 apt 命令 HTTPS 访问 Docker 源。
sudo apt-get install apt-transport-https
sudo apt-get install ca-certificates
sudo apt-get install curl
sudo apt-get install software-properties-common
2.添加Docker官方GPG
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3.将Docker源添加到 /etc/apt/sources.list
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
4.安装Docker
sudo apt-get update
sudo apt-get install docker-ce
老方法,用-version 检查是否安装成功:
运行第一个容器
sudo docker run -d -p 80:80 httpd
接下来验证容器是否正常工作。在浏览器中输入 http://[your ubuntu host IP]
Docker的镜像
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
1.从hello world开始
sudo docker pull hello-world
下载hello-world镜像:
sudo docker images
查看镜像信息:
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
sudo docker run hello-world
运行hello-world:
2.查找镜像
sudo docker search httpd
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似Github 里面的 star,表示点赞。
AUTOMATED: 自动构建。
3.删除镜像
如果要删除镜像,输入以下指令:
sudo docker rmi hello-world
运行Docker
之前我们知道,docker run是运行容器的方法。
如果要查看当前运行的容器:
sudo docker ps
查看所有的容器:
sudo docker ps -a
CONTAINER ID 是容器的 “短ID”,前面启动容器时返回的是 “长ID”。短ID是长ID的前12个字符。
NAMES 字段显示容器的名字,在启动容器时可以通过 --name 参数显示地为容器命名,如果不指定,docker 会自动为容器分配名字。
如果要让容器运行并留在后台,增加-i -t参数,比如:
sudo docker run -i -t hello-world
要进入一个运行的容器:
sudo docker exec -it
最后附上docker的常用命令:
attach 进入一个运行的容器
build 从一个DockerFile构建镜像
commit 从容器创建一个镜像
cp 从容器和主机文件系统之间拷贝文件
create 创建一个容器
diff 检查容器文件系统上的更改
events 从服务器获取实时事件
exec 在正在运行的容器中运行命令
export 将容器的文件系统导出为tar存档
history 显示镜像的历史记录
images 查看镜像列表
import 从归档文件中创建镜像
info 显示系统范围的信息
inspect 返回Docker对象的低级信息
kill kill运行中的容器
load 从存档或者STDIN加载镜像
login 登陆docker镜像仓库
logout 退出docker镜像仓库
logs 获取一个容器的日志
pause 暂停一个或多个容器中的所有进程
port 查看端口映射或容器的特定映射列表
ps 查看容器列表
pull 从镜像仓库拉取镜像
push 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
rename 重命名容器
restart 重启容器
rm 删除容器
rmi 删除镜像
run 创建一个新的容器并运行一个命令
save 将指定镜像保存成 tar 归档文件
search 从Docker Hub搜索镜像
start 启动容器
stats 实时显示容器资源使用情况的统计信息
stop 停止容器
tag 标记本地镜像,将其归入某一仓库
top 展示一个容器中运行的进程
unpause 恢复容器中所有的进程
update 更新容器配置
version 显示Docker的版本信息
wait 阻塞直到容器停止,然后打印退出代码
Docker网络
sudo docker network ls
查看Docker网络
可以通过以下指令自定义Docker网络:
sudo docker network create --driver bridge my_net
则创建了类似默认的bridge网络。
创建时也可以指定IP网段:
sudo docker network create --driver bridge --subnet IP_address --gateway IP_address2 my_net
可以查看my_net的配置信息:
sudo docker network inspect my_net
以上是Docker学习的基本内容。