Docker常用命令记录
一切皆容器

Docker入门操作
Docker镜像操作
查看本地所有镜像
docker images

查看单个镜像信息
docker image inspect IMAGE ID
docker image inspect dd3b2a5dcb48

搜索镜像
Docker镜像官网 : https://hub.docker.com/search?image_filter=official&q=
docker search image_name
docker search tomcat

拉取镜像
docker pull tomcat:版本号 #默认是latest
docker pull tomcat

删除镜像
docker rmi -f $(docker images -q) 此命令会删除所有的docker镜像
docker rmi IMAGE ID
docker rmi f42b2599b503

运行镜像
默认是在本地找镜像运行,如果没有就从官方镜像仓库中拉镜像。换句话说,前面的docker image pull命令并不是必需的步骤。
-it 表示与容器进行交互式启动
-d 表示可后台运行容器(守护式运行)
--name 给要运行的容器 起的名字
-p port:port 宿主机端口:Docker容器端口
image_name:Tag 镜像名:版本
/bin/bash 交互路径
docker run -it -d --name other_name -p port:port image_name:Tag /bin/bash
docker run -it -d --name mysql02 -p 8888:6379 mysql:5.6.51 /bin/bash

Docker容器操作
查看本地所有实例(正在运行 + 未运行)
docker ps -a 查看所有容器
docker ps 查看正在运行的容器
docker ps -a --format 格式化参数
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}"

查看单个容器实例信息
docker container inspect CONTAINER ID
docker container inspect 283ece3c8bbb

停止正运行的容器
docker stop CONTAINER ID
docker stop f0acd463d4bb

启动已停止的容器
docker start CONTAINER ID
docker update --restart=always CONTAINER ID #此命令是让容器随着docker的启动而启动
docker update --restart=no CONTAINER ID #此命令是让容器关闭自启
docker start f0acd463d4bb

删除停止运行的容器
docker rm -f $(docker ps -aq) 此命令会强制删除所有容器
docker rm CONTAINER ID
docker rm f0acd463d4bb

更改容器名
docker rename old_name new_name
docker rename miouo-vscode-0.0.1 mioi

将正在运行的容器打包成镜像
docker commit CONTAINER ID NEW_IMAGE_NAME:TAG
docker commit 371c1351bf50 centos:7.9.2009-new

Docker进阶操作
Docker镜像构建,保存,加载
构建镜像(Dockerfile文件根据官网文档编写)

docker build -t 指定镜像名:指定镜像版本 在当前目录构建
docker build -t miou-acmovies:0.0.1 .

保存存在的镜像到本地
docker save 镜像名称:镜像版本 > 打包后的文件名字.tar
docker save miou-acmovies:0.0.1 > ~/miou-acmovies.tar

加载本地保存的镜像
docker load -i 打包后的文件名字.tar
docker load -i miou-acmovies.tar

Docker容器操作
进入容器
docker exec -it CONTAINER NAME /bin/bash
docker exec -it --user root container_id /bin/bash #以root用户身份进入,进入后可以改root用户密码
docker exec -it mycode /bin/bash

退出容器
exit

拷贝容器内部文件到虚拟机
docker cp CONTAINER NAME:FILE LOCALPATH

拷贝虚拟机文件到容器内部
docker cp LOCALFILE CONTAINER NAME:PATH

给容器安装软件
容器内部系统为CentOS系统
docker exec -it CONTAINER ID yum update #更新容器
docker exec -it CONTAINER ID yum install vi #安装vi工具
容器内部系统为Ubuntu系统
docker exec -it CONTAINER ID apt-get update
docker exec -it CONTAINER ID apt-get install vi
docker exec -it 8133c5e54af9 yum install vi

Docker网络
查看已经存在的Docker网络
Docker默认有三个网络名分别是bridge,host,none
docker network ls

创建Docker网络
--driver bridge 表示使用桥接模式
--subnet 172.23.0.0/16 表示子网ip 可以分配 172.23.0.1 到 172.23.255.255
--gateway 172.23.0.1 表示网关
default_network表示网络名
docker network create --driver bridge --subnet 172.23.0.0/16 --gateway 172.23.0.1 default_network

查看Docker网络详情
docker network inspect 网络名
docker network inspect default_network

利用docker-compose.yaml文件将应用构建在已存在的网络内
下面的例子更换成name为default_network的网络,以下代码是用docker构建了一个Nacos应用

参考文章
很全面的Docker教程
https://blog.csdn.net/liang19890820/article/details/120500266
更全面的Docker教程
https://cloud.tencent.com/developer/article/1885678
Docker简易入门教程
https://iphysresearch.github.io/blog/post/programing/docker-tutorial/

浙公网安备 33010602011771号