查看镜像分层结构
docker pull
搜索镜像
docker search
下载镜像
docker pull [OPTOPNS] NAME[:TAG|@DIGEST]
镜像下载路径
/var/lib/docker/overlay2/镜像
镜像下载会自动解压缩
镜像导出
可以将本地镜像导出为一个打包tar文件
docker save .. -o xx.tar
可以使用REPOSITORY:TAG 或 IMAGE ID来指定打算导出的镜像
注:image ID导出镜像导入后REPOSITORY和TAG显示为none
镜像导入
docker load
删除镜像
docker rmi IMAGE
docker image rm IMAGE
镜像打标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
TARGET_IMAGE[:TAG]格式一般形式
仓库主机FQDN或IP[:端口]/项目名/image名字:版本
注:只有遵守一定的命名规范,才可以上传到指定的仓库
容器操作基础命令
docker run 启动容器
--restart选项可以指定四种不同的重启策略
no 不自动重启
on-failure[:max-retries] 当容器非正常退出时,自动重启,可以限制尝试重启次数
always 可以实现开机自动启动容器
unless-stopped
从容器内退出并停止容器 exit
从容器内退出,容器不停止 ctrl+p+q
docker ps -a 显示所有容器进程
进入容器进行交互 docker run -it xxx sh
后台启动容器 docker run -d
查看容器的详细信息 docker inspect
删除容器 docker rm
给正在运行的容器发信号 docker kill [options] CONTAINER
进入正在运行的容器 docker attach
暴露容器端口
容器启动后,默认处于NAT网络中,所以外部网络主机无法直接访问容器中网络服务
docker run -P 可以事先定义容器端口映射宿主机的网卡的随机端口 从32768开始
注:使用随机端口,容器再启动时映射端口会发生改变
指定端口映射
docker run -p 可以指定容端口映射到宿主机相应端口
注意:多个容器映射到宿主机的端口不能冲突,但容器内使用的端口可以相同
docker run -p 宿主机端口:容器端口 --name ....
docker logs 查看容器中运行的进程在控制台输出的日志信息
容器会自动将容器的ID加入自己的/etc/hosts文件中,并解析成容器的IP
指定容器DNS
两种方式
1.启动容器时加选项 --dns
2.在文件中指示 /etc/docker/daemon.json
注:--dns指定优先级更高
容器内和宿主机之间复制文件
docker cp CONTAINER:SRC_PATH DEST_PATH
docker cp SRC_PATH CONTAINER:DEST_PATH
使用systemd控制容器运行
传递环境变量参数
-e <参数> 或 --env-file <参数文件>