Docker简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker的安装
1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i’s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list
sudo apt update
2.安装需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl
3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg |
sudo apt-key add - sudo add-apt-repository “deb [arch=amd64]
https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release
-cs) stable”
4.添加成功后更新软件包缓存
sudo apt update
5.安装 Docker-ce
sudo apt install docker-ce
6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)
sudo systemctl enable docker
sudo systemctl start docker
Docker 镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。
Ubuntu14.04、Debian7Wheezy
对于使用 upstart 的系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:
DOCKER_OPTS="–registry-mirror=https://registry.docker-cn.com"
重新启动服务:
$ sudo service docker restart
Ubuntu16.04+、Debian8+、CentOS7
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容
{
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
}
之后重新启动服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
将用户添加到docker用户组可以将sudo去掉
命令如下:
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
Docker镜像的使用
列出镜像列表:
docker images
名称 | 说明 |
---|---|
REPOSITORY | 表示镜像的仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建时间 |
SIZE | 镜像大小 |
查找镜像
docker search 镜像名
拉取镜像
docker pull 镜像名
删除镜像
docker rmi 镜像名
容器相关的命令
查看容器
查看正在运行的容器
docker ps
查看所有容器
docker pa -a
查看最后一次运行的容器
docker ps -l
查看停止的容器
docker ps -f statuc=exitde
创建与启动容器
eg:创建的容器名称不能重复
交互式方式创建容器
若退出当前的容器则容器停止运行
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
说明:若标签的名称为latest则可以省略不写
退出当前容器
exit
守护式方式创建容器
exit退出不会使得容器停止运行
docker run -di --name=容器名称 镜像名称:标签
登录守护式容器方式
docker exec -it 容器名称(或者容器ID) /bin/bash
进入交互式方式创建的容器
docker attach 容器名称/ID
启动容器
docker start 容器名称/ID
停止容器
docker stop 容器名称/ID
删除容器
删除一个容器: docker rm 容器名称/id 删除多个容器: docker rm 容器名称1/id1 容器名称2/id2 … 删除所有容器 docker rm docker ps ‐a ‐q
PS:无法删除正在运行的容器
删除一个容器
docker rm 容器名称/id
删除多个容器
docker rm 容器名称1/id1 容器名称2/id2 …
删除所有容器
docker rm `docker ps ‐a ‐q`
// “`” 此符号非单引号,而是键盘上esc下面的那个键
PS:无法删除正在运行的容器
查看容器的日志
docker logs 容器名称/id
文件的拷贝
docker cp 需要拷贝的文件或目录 容器名称:容器目录
文件的挂载
创建容器 添加-v参数 后边为 宿主机目录:容器目录
docker run ‐id ‐‐name=c4 ‐v /opt/:/usr/local/myhtml centos
如果你共享的是多级的目录,可能会出现权限不足的提示
就可以添加一个参数 ‐‐privileged=true
docker run ‐id ‐‐privileged=true ‐‐name=c4 ‐v /opt/:/usr/local/myhtml centos