0%

Docker学习笔记

说在前面的话

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

Docker安装

yum安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker

#查看当前系统的内核版本
uname -r

#安装 Docker
yum -y install docker

#启动 Docker 后台服务
service docker start

#测试运行 hello-world,由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。
docker run hello-world

脚本安装

#确保 yum 包更新到最新
sudo yum update

#执行 Docker 安装脚本,执行这个脚本会添加 docker.repo 源并安装 Docker。
curl -fsSL https://get.docker.com/ | sh

#启动 Docker 进程
service docker start

#验证 docker 是否安装成功并在容器中执行一个测试的镜像
docker run hello-world

# 查看docker版本
docker version

服务操作

启动命令

# 开启docker自动重启
systemctl enable docker

# 启动docker方法1
systemctl start docker

# 启动docker方法2
service docker start

关闭命令

# 关闭docker方法1
systemctl stop docker

# 关闭docker方法2
service docker stop

镜像操作

安装镜像

#该方式默认下载的最新版本,如需要下载指定版本在redis后面跟:版本号
docker pull redis

查看镜像

docker images

启动镜像

# -p 主机端口:容器端口    -v 主机目录:容器目录
docker run -it -p hostPort:containerPort -v hostDir:containerDir

删除镜像

# 通过image的id来指定删除谁
docker rmi <image id>

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

# 强制删除全部image的话
docker rmi -f $(docker images -q)

# 删除状态为Exited的容器
docker rm $(docker ps -q -f status=exited)

容器操作

创建容器

# docker create 创建新容器
# -p 主机端口:容器端口
# --name 指定容器名称
# 最后的参数表示 使用哪个镜像名作为创建容器的模版,这是docker build中使用的名称
docker create -p 3000:80 --name exampleApp3000 yoyomooc/exampleapp

启动容器

# 方法1 
# 根据镜像创建一个容器并启动
# docker run:创建一个新的容器并运行
# ubuntu:你想要启动的image**
# -t:进入终端
# -i:获得一个交互式的连接,通过获取container的输入
# /bin/bash:在container中启动一个bash shell
docker run -t -i 镜像名 /bin/bash

# 方法2
# 启动一个已经存在的容器
docker start 容器名

两种启动容器的方法区别在于,前者相当于执行了创建容器+启动容器,而后者只有启动容器

停止容器

# 方法1
docker stop -t=60 容器ID或容器名

# 停止所有容器
docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq)

# 方法2
docker kill 容器ID或容器名

其中stop方法中的参数-t表示关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态。上述两种方法的主要区别是stop会给时间让容器自己保存状态,kill是直接关闭容器,因此stop方式常常被翻译为优雅的停止容器

查看容器

# 查看正在运行中的容器
docker ps

# 查看所有运行或者不运行容器
docker ps -a

# 列出所有容器ID
docker ps -aq

进入容器

假设在后台有容器运行,如果想进入它的终端,那么存在下述两种方法👇

# 方法1
docker attach 容器名

# 方法2
docker exec -it 容器名 /bin/bash

使用docker attach命令进入container有一个缺点,那就是每次从container中退出到前台时,container也跟着退出了;如果要想退出container时,让container仍在后台运行,可以使用docker exec -it命令

退出容器

假设要退出存在的两种,如果想进入它的终端,那么存在下述两种方法👇

# 方法1
exit

# 方法2
command + D

重命名容器

docker rename 旧容器名 新容器名

删除容器

docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq)