目录

管理 docker 常用命令

动Docker:systemctl start docker
止Docker:systemctl stop docker
启Docker:systemctl restart docker
看Docker:systemctl status docker
置Docker:systemctl enable docker
闭Docker:systemctl disable docker
:docker pull <image_name>
:docker images [-a: -q:像ID]
:docker run <image_name>
 run: docker create image
:docker ps [-q:器ID]
:docker ps -a 
:docker update --restart=unless-stopped my-nginx
:docker stop <container_id>
:docker start <container_id>
:docker exec -it <container_id> /bin/bash
:docker rm <container_id>
:docker rmi <image_id>
:docker load -i /path/to/images.tar
:docker save nginx:latest | gzip > nginx.tar.gz
机docker
docker rm -f $(docker ps -aq)
docker rmi -f $(docker images -aq) 

运行容器

启动容器两种方式:

docker 命令

docker tag : :   #复制镜像并且修改名称
docker commit -a "xxx" -c "xxx" 像ID :   #将容器的状态制作成为一个镜像 
 -a :
 -c :使用Dockerfile
 -m :

docker build -f <dockerfile> -t <> /path/to/dockerfile/directory   #创建镜像 如果 dockerfile 为 Dockerfile,则不同指定-f
docker logs 的ID         #查看容器日志
docker rename        #给容器重新命名
docker top    的ID       #查看容器内进程
docker ps -a                    #列出所有容器(不加-a就是在运行的)
docker rm     的ID       #删除容器(正在运行容器不能删除,除非加-f选项)
docker kill   的ID       #杀掉容器
docker history 的ID      #查看docker镜像的变更历史
docker start   的ID      #启动容器
docker restart 的ID      #重启容器
docker stop    的ID      #停止正在运行的容器
docker attach [ docker exec]  的ID   #同为进入容器命令,不同的是attach连接终止会让容器退出后台运行,而exec不会。并且,docker attach是进入正在执行的终端,不会启动新的进程,而docker exec则会开启一个新的终端,可以在里面操作。
docker image inspect  :       #查看镜像内源数据
docker cp  器id:       #从容器内拷贝文件到主机(常用)或者从主机拷贝到容器(一般用挂载)
docker export d19aa2235b2b > abcd.tar    #将整个容器导出
cat  | docker import - /:     #如果不小心删除了容器(docker rm id),可以导入容器
crlt + P + Q                   #退出容器但是不终止运行

数据卷

ro  readonly   #只读
rw  readwrite  #可写可读
例:docker run -d --name nginx01 -v test01:/etc/nginx:ro nginx
    docker run -d --name nginx01 -v test01:/etc/nginx:rw nginx

Dockerfile

Dockerfile 指令选项

#Dockerfile
FROM ubuntu:latest
ENTRYPOINT ["echo", "Hello"]

$ docker build -t my_image .
$ docker run my_image
# 输出 Hello

$ docker run my_image "World"
# 输出 Hello World
docker login -u 账户名  #登陆命令
docker out   #退出命令
docker push 账户名/镜像ID:版本号  #将镜像推到远程仓库

docker 网络

# 方法 1:创建网络时指定子网,运行时指定 IP
docker network create --subnet=192.168.1.0/24 mynet

docker run -d \
  --name web \
  --network mynet \
  --ip 192.168.1.100 \
  nginx

# 方法 2:连接已有网络时指定 IP
docker network connect --ip 192.168.1.101 othernet nginx