Docker基础操作,镜像操作命令、容器操作命令(一)

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"显示指定星级以上的镜像

mark

mark

2、获取(下载)镜像

docker pull 仓库名称[:标签]

3、查看镜像

docker images 仓库名称[:标签]

docker inspect 镜像ID号   #查看镜像的详细信息

mark

参数 解释
REPOSITORY 镜像属于的仓库
TAG 镜像的标签信息,标记了同一个仓库中的不同镜像
IMAGE ID 镜像的唯一 ID 号,是镜像的唯一标识
CREATED 镜像的创建时间
SIZE 镜像的大小

4、删除镜像

docker rmi 镜像的标识(image id) 
# 通过镜像id删除

docker rmi   $(docker images -qa)			
#删除全部镜像

docker rmi 镜像名称
# 镜像tag存在时,删除要用名称删除,用id删除不了

mark

打标签

方便在后续的工作中使用下载好的镜像,使用【docker tag】命令来为本地的镜像添加新的标签

docker tag 名称:[标签] 新名称:[新标签]

'例:'
docker tag nginx:latest ypy/nginx:www

docker images|grep nginx

mark

5、导出镜像与导入镜像

导出镜像

需要先将镜像保存至本地文件

使用【docker save】命令操作

docker save -o [导出路径] [镜像ID]

'例:'
docker save -o /opt/ypy 

mark

导入镜像

加载本地镜像文件
docker load -i [镜像文件]  
cd /opt
docker load < ypy

mark

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

mark

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    #后台运行

mark

docker start 容器ID

mark

4、进入容器内部

两种方法

docker exec -it 容器id bash 		
docker attach 容器id
两者的区别:
docker exec:进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach:进入容器正在执行的终端,不会启动新的进程

mark

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(文件名)

mark

12、容器导入

cat [文件名] |docker import - [生成的镜像名称][:标签]
例
ls -l nginx01
cat nginx01 | docker import - nginx:ypy

docker images |grep nginx 查看有nginx的

mark

13、删除容器

docker rm 容器ID
docker rm $(docker ps -qa)  删除全部容器

批量删除

docker ps -a | awk '{print "docker rm "$1}' | bash   
#只删除不运行的容器,保留只运行的容器

猜你喜欢

转载自blog.csdn.net/Gloomyumenge/article/details/115208274