1、Docker
1.1 什么是Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 个可移植的镜像(images)中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器(container)是完全使用沙箱(sandbox)机制,相互之间不会有任何接口。
1.2 容器和镜像
Docker中有两个重要的概念:镜像(image)和容器(container)
1.2.1 镜像(image)
Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
1.2.2 容器(container)
镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。
2、在ubuntu中安装Docker
获取软件最新源
sudo apt-get update
安装 apt 依赖包 用于通过HTTPS来获取仓库
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
验证
sudo apt-key fingerprint 0EBFCD88
设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io
测试
sudo docker run hello-world
显示以下结果,表示安装成功
3、管理Docker
显示docker状态
systemctl status docker
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
设置docker为开机启动
sudo systemctl enable docker
4、镜像操作
4.1 镜像名称
镜像名称的组成:
镜像名称由两部分组成:[repository]:[tag]
这里的repository代表要镜像的程序,tag表示程序的版本,其中tag也可以不用写,在不写的时候默认值为latest(代表软件的最新版本)
例如:mysql:5.7.25
常见的镜像操作命令大致可以在下图表示:
4.2 常见的镜像命令如下:
docker images//查看镜像
docker rmi 镜像名 //删除镜像
docker push 镜像名//推送镜像到服务器
docker pull 镜像名//从服务器拉取镜像
docker save -o [保存的目标文件名称] [镜像名称]//保存镜像为压缩包
docker load -i [保存压缩包的地址/压缩包名称]//加载压缩包为镜像
docker save --help//查看save的使用方法,save可以换为别的值
5、容器相关操作
容器操作的常见命令如图:
5.1 容器保护三个状态:
运行:进程正常运行
暂停:进程暂停,CPU不再运行,并不释放内存
停止:进程终止,回收进程占用的内存、CPU等资源
5.2 容器操作的常见命令:
docker run --name [容器的名称] -p [宿主机端口]:[容器端口] -d [镜像名称]//创建并运行一个容器,处于运行状态
--name:指定容器名称
-p:指定端口映射
-d:让容器后台运行
docker ps -a//查看容器的运行状态(-a表示查询所有容器的状态,不写-a默认表示查询运行中容器的状态)
docker stop [容器名] //停止一个运行的容器
docker start [容器名]//让一个停止的容器再次运行
docker restart [容器名]//重新启动容器
docker rm [容器名]//删除一个容器
docker pause [容器名]//让一个运行的容器暂停
docker unpause [容器名]//让一个容器从暂停状态恢复运行
docker logs -f [容器名]//查看docker容器中的访问日志(-f表示持续查看,会实时更新日志状态,不加默认是查询前的日志,不会再更新)