Docker--常用操作
1. 安装Docker
1.1 Ubuntu 安装 Docker
$ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
1.2 Docker 镜像加速器
在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{ "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"] }
然后重启服务
systemctl daemon-reload
systemctl restart docker
1.3安装docker compose
官方:https://github.com/docker/compose/releases
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
3.常用docker镜像仓库地址
3.1、国内仓库
网易: https://c.163yun.com/hub#/m/home/ (需登录)
阿里云:https://cr.console.aliyun.com/cn-beijing/instances/images (需登录)
DaoCloud 道客网络: https://hub.daocloud.io/
3.2、国外仓库
Docker Hub: https://hub.docker.com/ (默认)
Quay: https://quay.io/search
3.3 自己搭建私服
4.推送镜像
4.1 标记
docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
4.2 推送
docker push 127.0.0.1:5000/ubuntu:latest
4.3 查看仓库中的镜像
curl 127.0.0.1:5000/v2/_catalog
获取到一串json数据,格式化后查看
5.获取镜像
从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
eg:
docker pull ubuntu:16.04
6.镜像运行
docker run 是运行容器的命令,镜像运行,是以镜像为基础创建运行容器
eg:容器运行,并以交互式的方式进入容器
docker run -it --rm ubuntu:16.04 bash
-it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
ubuntu:16.04:这是指用 ubuntu:16.04 镜像为基础来启动容器。
bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。
7.docker常用命令
#查看 Docker 版本
docker version
#从 Docker 文件构建 Docker 镜像
docker build -t image-name docker-file-location
#运行 Docker 镜像
docker run -d image-name
#查看可用的 Docker 镜像
docker images
#查看最近的运行容器
docker ps -l
#查看所有正在运行的容器
docker ps -a
#停止运行容器
docker stop container_id
#删除一个镜像
docker rmi image-name
#删除所有镜像
docker rmi $(docker images -q)
#强制删除所有镜像
docker rmi -r $(docker images -q)
#删除所有虚悬镜像
docker rmi $(docker images -q -f dangling=true)
#删除所有容器
docker rm $(docker ps -a -q)
#进入 Docker 容器
docker exec -it container-id /bin/bash
#查看所有数据卷
docker volume ls
#删除指定数据卷
docker volume rm [volume_name]
#删除所有未关联的数据卷
docker volume rm $(docker volume ls -qf dangling=true)
#从主机复制文件到容器
sudo docker cp host_path containerID:container_path
#从容器复制文件到主机
sudo docker cp containerID:container_path host_path