Docker 命令 镜像操作 容器操作 备份与迁移 DockerFile

什么是Docker?

Docker是一种开源应用容器引擎,开发者可以打包自己的应

用以及依赖包到可移植的容器中,然后发布到任何linux机器上。

Docker客居在操作系统内核上的用户空间,只能运行与底层宿主

机相同的操作系统之上。主要目标是实现轻量级的操作系统虚拟化

解决方案。Docker的兴起主要是因为互联网应用的快速更迭以及

微服务架构的流行。

Docker组件

Docker服务器与客户端(cs架构)

Docker镜像与容器

Docker仓库

Docker的安装与启动

安装与启动

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本

使用uname --r查看当前操作系统的内核版本

1.yum包更新到最新:

复制代码
sudo yum update

2.安装需要的安装包,yum-util提供yum-config-manager功能,后面的是devicemapper驱动依赖的。

sudo yum install --y yum-utils device-mapper-persistent-data lvm2

3.设置yum源为阿里源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装docker

sudo yum install docker-ce

5.安装后可以使用docker --v查询docker版本

Docker安装后需要设置镜像,在服务器的/etc/docker/目录下找到名为

daemon.json的文件

进入vim编辑输入

{

"registry-mirrors":[https://docker.mirrors.ustc.edu.cn]

}

修改完以后通过systemctl restart docker.service重新启动docker服务

systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。

启动docker:systemctl start docker

停止docker:systemctl stop docker

重启docker:systemctl restart docker

查看docker状态:systemctl status docker

开机启动:systemctl enable docker

查看docker概要信息:docker info

查看docker帮助文档:docker --help

Docker镜像操作

1.列出本地docker镜像:docker images

(镜像一般存储在Docker宿主机的/var/lib/docker目录下)

2.搜索镜像:docker search 镜像名字

3.拉取镜像:docker pull 镜像名

4.删除镜像:

docker rmi IMAGE_ID 删除指定镜像

docker rmi docker image -q 删除所有镜像

Docker容器操作

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次运行的容器

docker ps -l

查看停止的容器

docker ps --f status=exited

1、创建容器常见参数

创建容器命令:docker run

-i:表示运行容器

-t:表示容器启动后进入命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

--name:创建的容器名称

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

2、交互式容器

docker run -it --name=myhello1 hello-world

3、守护式容器

docker run -di --name=myhello2 hello-world

登录容器:docker exec -it container_name (或者 container_id) /bin/bash

守护式容器和交互式容器的区别在于守护式容器可以后台运行

离开容器:exit

4、启动和停止容器

启动容器:docker start $CONTAINER_NAME/ID

停止容器:docker stop $CONTAINER_NAME/ID

5、文件复制

从宿主机拷贝到容器:docker cp 需要拷贝的文件或目录 容器名称:容器目录

从容器拷贝到宿主机:docker cp 容器名称:容器目录 需要拷贝的文件或目录

6、目录映射

将宿主机的目录与容器内的目录进行映射,这样可以通过修改宿主机的文件从而去影响容器。创建容器 添加-v参数 后边为 宿主机目录:容器目录

docker run -di -v 宿主机目录:容器目录 --name=myhello3 --privileged=true hello-world

7、查看容器信息

docker inspect 容器名

8、删除容器

删除指定容器:docker rm $CONTAINER_ID/NAME

删除所有容器:docker rm docker ps -a -q

Docker备份与迁移

1、容器保存为镜像

docker commit myhello myhelloimage

myhello为容器名称

myhelloimage为保存的新的镜像名称

2、镜像备份

docker save -o myhello.tar myhello

-o 后面跟的是输出的文件

3、镜像恢复

docker load -i myhello.tar

myhello.tar为镜像备份后的文件

Dockerfile常用命令

什么是Dockerfile?Dockerfile是由一系列命令和参数组成的脚本,应用于基础镜像并创建一个新的镜像。可以为开发人员提供统一的开发环境,而且测试、运维人员可以直接用Dockerfile构建新的镜像,实现无缝移植。

1、常用命令:

2、使用脚本创建镜像

做一个小Demo,用SpringBoot构建一个HelloWorld工程打成jar包,发布到服务器,用Dockerfile构建成镜像。然后就可以用镜像创建容器运行。

(1)首先在宿主机创建目录用于存放jar包和Dockerfile文件

cd /usr/local mkdir helloworlddocker

(2)上传jar包

(3)创建Dockerfile文件并编辑(文件名必须为Dockerfile)

vim Dockerfile 内容如下

(4)执行命令构建镜像

docker build -t helloworlddemo .

需要注意的是,后面有一个 . 而且镜像的名字是全小写,-t是指定tag名。

执行完正确的构建镜像命令后会下依赖的基础镜像,然后在基础镜像上运行java程序

成功以后是这样的

执行完正确的构建镜像命令后会下依赖的基础镜像,然后在基础镜像上运行java程序

(5)查看镜像是否构建成功 docker images

(6)运行镜像

docker run -d -p 18080:8080 --name helloworlddemo helloworlddemo

然后打开浏览器访问18080端口。

相关推荐
hanbaoaaa7 分钟前
快速部起一个Openwhisk平台,使用telego k8s服务部署能力内网部署
云原生·容器·kubernetes
fictionist12 分钟前
正则表达式篇
linux·运维·服务器·数据库·mysql·正则表达式·c#
孙克旭_17 分钟前
day019-特殊符号、正则表达式与三剑客
linux·运维·正则表达式
宇钶宇夕42 分钟前
电路图识图基础知识-电气符号(二)
运维·自动化
学习编程的gas1 小时前
Linux基本指令(二)
linux·运维·服务器
文牧之1 小时前
Oracle 的 MOVE 操作是否重建表?
运维·数据库·oracle
鸭鸭鸭进京赶烤1 小时前
第七届能源系统与电气电力国际学术会议(ICESEP 2025)
大数据·运维·人工智能·自动化·智慧城市·能源·laravel
数据要素X1 小时前
【数据架构06】可信数据空间架构篇
大数据·运维·数据库·人工智能·架构
阳光九叶草LXGZXJ2 小时前
达梦数据库-学习-21-C 外部函数
linux·运维·c语言·开发语言·数据库·sql·学习
一个小白5552 小时前
nginx 的反向代理 负载均衡 动静分离 重写
linux·运维·前端·nginx·centos·firefox