声明:该教程为精简教程,如果想要深入理解建议仔细研读官方文档
引入yum的repo:
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装
$ sudo yum install docker-ce
Download from Docker Store
Download from Docker Store
查看 https://docs.docker.com/
Registry 仓库中保存着image,Docker
Hub 是 Docker 官方的仓库,可以通过仓库下载和上传image。
$ docker pull
通过以上命令可以获取image
$ docker image ls
以上命令将打印出本地的image
$ docker tag
该命令将创建一个名为
$ docker push
将上传镜像,imageName 如果是 registry / image 形式,将上传到响应的仓库
$ docker build .
以上命令,将会把本目录下的文件传给build,并默认以目录下 Dockerfile 来构建镜像。
查看Dockerfile参考
$ docker build -t
可以同时创建一个tag
$ docker run -d
以上命令将创通过image创建一个容器,系统会自动分配一个 containerId 给容器
以下是常用参数:
--name
-p : // 将主机的端口和容器的端口绑定
-v : // 将容器的某个目录放在volume或者某个主机目录下,这样就可以永久保存container的数据,详细请看volume
-e VAR1=12312312 // 配置环境参数
--rm // 运行结束后自动删除
$ docker container ls
或者
$ docker ps
以上命令将打印出正在运行的容器的信息
$ docker container ls -a
打印所有的容器
$ docker container inpsect
查看某个容器运行的详细信息
$ docker container stop
$ docker container rm
停止容器后可以删除容器
$ docker container prune
会删除所有停止的容器
$ docker commit
可以将容器保存为镜像
$ docker exec -it
将开启一个可以交互的 shell,类似于 ssh 的效果
Volume 数据卷,可以使容器数据持久化,即能够保存容器的状态。比如 mysql 容器,可以将保存的数据库的信息放在数据卷中,这样新建的一个 mysql 容器就可以使用之前的数据了。
数据持久化的方式有三种类型:
$ docker run -v : ...
$ docker run -v : ...
$ docker volume create
创建一个volume
$docker volume create --driver
创建一个使用某种驱动(默认是 local )的 volume,通过设置驱动可以配置某个 volume 供多个主机共享使用
例如:
$ docker volume create --driver vieux/sshfs \
-o sshcmd=test@node2:/home/test \
-o password=testpassword \
sshvolume
然后可以通过以下方式绑定到容器
$ docker run -d \
--name sshfs-container \
--volume-driver vieux/sshfs \
--mount src=sshvolume,target=/app,volume-opt=sshcmd=test@node2:/home/test,volume-opt=password=testpassword \
$ docker volume ls
打印 volume 信息
$ docker volume prune
删除停止使用的 volume
$ docker volume inspect
查看 volume 的详细信息
Swarm 集群,表示 多台主机的集合。通过 swarm 我们可以快速部署和管理集群
Swarm 中有 manager 和 worker 两种角色,其中 worker 只能执行操作或者选择退出 swarm
$ docker swarm init
以上命令会初始化本机为一个 manager 节点,并且会返回一个 token
$ docker swarm join-token (manager|worker)
然后根据提示操作,即可加入某个集群并且成为相应的角色
$ docker swarm join \
--token \
通过 token 可以成为某个集群的 worker
$ docker swarm leave
退出某个集群
$ docker stack deploy -c
通过一个yml格式的配置文件,既可以在一个 swarm 中快速部署应用
Stack.yml 配置文件参考