docker 的使用
目录
一 docker的介绍
二 Ubuntu上安装docker
三 docker常用命令
一 docker的介绍
轻量级的虚拟机 ------------> docker 事实上的容器标准(go开发)
天生提供隔离性(sandbox 沙盒)
把运行应用所需要的 代码、库、依赖、配置文件、运行时环境打包在一起,成为一个 标准的单元(镜像)
以前我们的做法是首先下载所有的依赖,搭配好环境,再运行应用程序,现在我们就直接拥有了镜像
提高了移植程序的效率
例如:
我们开发了一款app
,它依赖mysql 5.7.0 redis 3.0.0
App
--------------------> mysql 5.7.0
|
|
|
v
redis 3.0.0
运维现在要将它部署到业务服务器上 但是环境是mysql 8.0 redis 2.7
第三方库版本不对
容器是轻量级的虚拟化(共享一个内核)
镜像:
层次结构
大部分的产品都在hub.docker.com
这个仓库中
镜像和容器的联系 就像是程序和进程
二 Ubuntu上安装docker
# 1.更新软件源
sudo apt update
# 2.安装基本软件
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y
# 3.指定使用阿里云镜像
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 4.更新软件源
sudo apt update
# 5.安装docker-ce
sudo apt-get install docker-ce -y
# 6.查看docker版本
docker version
# 7.配置可用镜像源
# 创建文件daemon.json
cd /etc/docker
sudo touch daemon.json
sudo vim daemon.json
# 把下面的内容复制到daemon.json文件中
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
# 8.重启docker
systemctl daemon-reload
systemctl restart docker
# 9.检验docker是否安装成功
docker run hello-world # 返回 hello
三 docker常用命令
# 检验docker是否安装成功
docker run hello-world
# 拉取最新版nginx镜像
docker pull nginx:latest
# 拉取指定版本镜像
docker pull nginx:1.22.0
# 查看都有哪些镜像
docker images
# 删除一个镜像
# docker rmi + ID
docker rmi 08a1cbf9c69e
# 通过镜像启动一个容器
docker run nginx:latest
# 查看哪些容器在运行中
docker ps
# 展示所有容器
docker ps -a
# 拉起一个容器
docker start ......
# 停止一个容器 name/id
docker stop 08a1cbf9c69e
# 删除所有已经运行结束的容器
docker rm $(docker ps -a -q -f status=exited)
# 创建一个容器 打印hello 然后退出
# echo hello 是进入容器后要执行的命令
docker run nginx:latest echo hello
# 希望进入容器后 把自己的标准输入接进去 容器内部开启一个终端 持续不断地发送命令
docker run -it nginx:latest /bin/bash
docker run -it nginx /bin/bash
docker run -d nginx
# 处于交互状态 如何退出
ctrl + d # 退出来了 但是容器停止了
ctrl + p,q # 退出 但不关闭
# 连接到现有的容器中
docker exec -it 08a1cbf9c69e /bin/bash
容器是轻量级的虚拟机
可以看作是正在运行的 Linux操作系统 + 你想要运行的应用程序