写在前面的几个重要命令

  1. docker与本地件的文件拷贝
# 查看容器ID
docker ps -a

# 本地文件拷本到容器
docker cp {local_path} {CONTAINER ID}:{path}

# 容器拷本到本地
docker cp {CONTAINER ID}:{path} {local_path} 

# eg
docker cp /Users/helloworld/Downloads/R-3.5.0 0a1d7db7946:/tmp/
  1. 报错解决 http: server gave HTTP response to HTTPS client
这是因为我们[docker]client使用的是https,而我们搭建的Harbor私库用的是http的

编辑 /etc/docker/daemon.json 

添加私服地址
{"insecure-registries":["仓库ip:port"]}
# 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

3.docke load 后找不到镜像

# docker load 后弹出的sha256的前几位就是镜像ID
# 模糊查询即可
docker images --format '{{.ID}}' | grep '^709f2bc'

1. 制作镜像

1.1 编写Dockerfile

FROM ubuntu:14.04
MAINTAINER "name" <email>
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
CMD ["nginx"]

1.2 构建镜像

docker build -t nginx.

2. 镜像相关

2.1 查看当前所有镜像

docker images

2.2 删除镜像

docker rmi <image_name>

2.3 上传镜像到仓库

docker push <image_name>

2.4 从仓库下载镜像

docker pull <image_name>

2.5 镜像标签

docker tag <image_name> <new_image_name>

2.6 保存镜像文件

docker save -o <image_name>.tar <image_name>

2.7 导入镜像文件

docker load -i <image_name>.tar

3. 容器相关

3.1 运行镜像-启动容器

docker run -d -p 80:80 nginx

3.2 停止容器

docker stop <container_id>

3.3 删除容器

docker rm <container_id>

3.4 查看运行日志

docker logs <container_id>

3.5 进入容器

docker exec -it <container_id> /bin/bash

docker exec -it <container_id> sh

3.6 导出容器

docker export <container_id> > <container_name>.tar

3.7 导入容器

docker import <container_name>.tar

4. 容器网络

4.1 查看容器网络

docker network ls

4.2 创建容器网络

docker network create <network_name>

4.3 删除容器网络

docker network rm <network_name>

4.4 连接容器到网络

docker network connect <network_name> <container_id>

5. 容器数据卷

5.1 查看容器数据卷

docker volume ls

5.2 创建容器数据卷

docker volume create <volume_name>

5.3 删除容器数据卷

docker volume rm <volume_name>

5.4 挂载容器数据卷

docker run -d -v <host_path>:<container_path> <image
docker run -d -v /home/data/mysql:/var/lib/mysql mysql

6. 跑路系列操作

6.1 删除全部容器

docker rm $(docker ps -a -q)

6.2 删除全部镜像

docker rmi $(docker images -q)

6.3 删除全部数据卷

docker volume rm $(docker volume ls -q)

6.4 删除全部网络

docker network rm $(docker network ls -q)

6.5 删除所有未运行的容器、未使用的镜像、数据卷、网络

docker system prune -a