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

posted @ 2020-04-15 16:55  夜未眠shm  阅读(168)  评论(0编辑  收藏  举报