文章目录
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://6axu1e6p.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
一、Docker基础命令
docker version #显示docker的版本信息
docker info #显示docker的更加详细的信息,包括镜像和容器的数量
systemctl status docker #查看docker状态
docker stats #查看docker内容器的运行状态
docker info #查看docker概要信息
docker --help #查看docker帮助文档
REPOSITORY:镜像的仓库源
TAG :镜像的标签
IMAGE ID:镜像的id
CREATED:镜像创建的时间
SIZE:镜像的大小
可选项:
-a:查看全部的容器,包括没有运行的
-q:只查看容器的标识
网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
systemctl restart network
systemctl restart docker
二、Docker镜像操作
Docker 运行容器前需要本地存在对应的镜像,如果不存在本地镜像,Docker 就会尝试从默认镜像仓库【https://hub.docker.com】下载,用户也可以配置自定义的镜像仓库
1、搜索镜像
docker search 关键字
例:
docker search nginx
docker search -f stars=800 nginx
#可以使用选项"-f"配合"stars=x"显示指定星级以上的镜像
2、获取(下载)镜像
docker pull 仓库名称[:标签]
3、查看镜像
docker images 仓库名称[:标签]
docker inspect 镜像ID号 #查看镜像的详细信息
参数 | 解释 |
---|---|
REPOSITORY | 镜像属于的仓库 |
TAG | 镜像的标签信息,标记了同一个仓库中的不同镜像 |
IMAGE ID | 镜像的唯一 ID 号,是镜像的唯一标识 |
CREATED | 镜像的创建时间 |
SIZE | 镜像的大小 |
4、删除镜像
docker rmi 镜像的标识(image id)
# 通过镜像id删除
docker rmi $(docker images -qa)
#删除全部镜像
docker rmi 镜像名称
# 镜像tag存在时,删除要用名称删除,用id删除不了
打标签
方便在后续的工作中使用下载好的镜像,使用【docker tag】命令来为本地的镜像添加新的标签
docker tag 名称:[标签] 新名称:[新标签]
'例:'
docker tag nginx:latest ypy/nginx:www
docker images|grep nginx
5、导出镜像与导入镜像
导出镜像
扫描二维码关注公众号,回复:
13108923 查看本文章

需要先将镜像保存至本地文件
使用【docker save】命令操作
docker save -o [导出路径] [镜像ID]
'例:'
docker save -o /opt/ypy
导入镜像
加载本地镜像文件
docker load -i [镜像文件]
cd /opt
docker load < ypy
docker默认工作路径
/var/lib/docker
三、Docker容器的操作
1、查看容器
docker ps 运行中的容器
docker ps -a 全部容器
2、容器创建
docker create [选项] [镜像] [运行的程序]
docker create -it nginx:latest /bin/bash
'常用选项:'
-i:让容器的输出保持打开
-t:让Docker分配一个伪终端
执行完成直接关闭 状态是Exited
3、容器运行
docker run 镜像标识|镜像名称[:tag]
#常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
选项:
-d:后台运行容器
-p:宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
--name 容器名称:指定容器的名称
--it 使用交互方式运行,进入容器查看内容
-P:指定容器端口
-p:随机指定端口
例:docker run --name mynginx -p 80:80 nginx #操作台运行
docker run -di --name mynginx -p 80:80 nginx #后台运行
docker start 容器ID
4、进入容器内部
两种方法
docker exec -it 容器id bash
docker attach 容器id
两者的区别:
docker exec:进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach:进入容器正在执行的终端,不会启动新的进程
5、退出容器
exit 停止容器并退出
ctrl+p+q 容器不停止并退出
6、显示容器的进程信息
docker top 容器ID
7、持续在后台执行
docker run -d paigeeworld/centos7 /bin/bash -c"while true;do echo hello;done"
8、终止运行
docker stop 容器ID
docker stop $(docker ps -qa) 停止全部容器
9、显示nginx容器状态
docker start xxx(一定要是运行状态)
docker exec -it xxx/bin/bash
exit (退出容器)
10、从容器内拷贝文件到主机上
如果需要将文件拷贝到容器内可以使用cp命令。
docker cp 需要拷贝的文件或目录(目的主机路径) 容器名称/ID:容器目录(绝对路径)
#也可以将文件从容器内拷贝出来。
docker cp 容器名称/ID:容器目录(绝对路径) 需要拷贝的文件或目录(目的主机路径)
11、容器导出
docker export 容器ID > nginx01(文件名)
12、容器导入
cat [文件名] |docker import - [生成的镜像名称][:标签]
例
ls -l nginx01
cat nginx01 | docker import - nginx:ypy
docker images |grep nginx 查看有nginx的
13、删除容器
docker rm 容器ID
docker rm $(docker ps -qa) 删除全部容器
批量删除
docker ps -a | awk '{print "docker rm "$1}' | bash
#只删除不运行的容器,保留只运行的容器