1、docker的安装
# ubuntu 的安装
apt-get update && apt-get install -y docker.io
# 创建软连接
ln -sf /usr/bin/docker.io /usr/local/bin/docker
# linux 的安装部署
curl -fsSL 'https://get.docker.com/'| sh
# 启动docker服务
systemctl enable docker && systemctl start docker
# 或者
yum install -y docker
注意如果下载比较慢,可以配置一下镜像源(内网环境参考前面我这边写的文章)
# 安装yum管理包
yum install -y yum-untils device-mapper-persistent-data lvm
# 添加docker镜像源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2、安装最新版本的docker
注意:为了方便,帮大家写了一个自动化的脚本
#!/bin/bash
# 检查是否已经安装 Docker CE
if ! command -v docker &> /dev/null
then
echo "Docker CE 尚未安装,开始安装..."
# 安装 wget
yum install -y wget
# 下载 Docker CE 仓库文件
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 移动仓库文件到 /etc/yum.repos.d/
mv docker-ce.repo /etc/yum.repos.d/
# 安装 Docker CE
yum install -y docker-ce
# 启用 Docker 服务并启动
systemctl enable docker && systemctl start docker
echo "Docker CE 安装完成."
else
echo "Docker CE 已经安装,无需重新安装."
fi
3、docker的基本命令
# 查看docker版本
docker version
# 查看docker帮助命令
docker help
# 查看子命令如何使用
docker help cp
# 查看docker的基本信息
docker -D info
# 查看docker 日志
在宿主机上 /var/log/upstart/docker.log
# 查看某一个容器的日志
docker logs [id or name]
# 持续查看某一个容器的日志
docker logs -f [id or name]
docker logs --follow [id or name]
# 启动docker
service docker start
start docker
# 查看docker的状态
service docker status
systemctl status docker
# 停止docker
service docker stop
systemctl stop docker
# 登录镜像仓库
docker login -u [username] -p [password] [server ip]
# 退出仓库
docker logout [server ip]
# 启动容器
docker run -it -d --name TestName linux:latest /bash
# 注意这里如果拉最新的版本,后面的latest可以省略;这里的-i表示即使容器没有attach,也要保持 stdin 处于 open 状态,如果不加参数,容器运行后就会处于 exited(0)
docker run -it -d --name TestName linux
# 为容器设置主机名称
docker run -it -d --hostname HostName linux /bash
# 为容器设置dns地址
docker run -it -d --name TestName --dns 255.255.255.255 linux /bash
# 以前台的模式启动容器
docker run -it --name TestName linux /bash
# 进入容器
docker exec -it [id or name ] /bash
# 退出容器
exit
# 创建容器和docker run 的区别;docker create 创建的容器处于create 状态,不会running,而docker run 的容器一直处于running状态
docker create --it --name TestName linux /bash
docker run -it -d --name TestName linux
# 创建容器将容器挂载在终端
docker attach TestName
# 查看在运行中的容器
docker ps
# 查看所有状态的容器
docker ps -a
# 将新建的容器的id赋值给变量
cid=$(docker run -it -d --name TestName linux bash)
echo cid
# 启动容器并且将容器中的80端口映射出来
docker run -d -p 8080:80 --name TestName linux
# 将主机的8080端口映射到容器的80端口,同时将主机的/opt/路径挂载到容器的/usr/目录下
docker run -d -p 8080:80 -v /opt:/usr --name Testname linux
4、其他命令
# 查询所有状态为退出的容器
docker ps -a | grep Exited | awk '{print $1}'
# 查询所有的容器,显示容器的ID
docker ps -aq
# 暂停容器
docker pause TestName
# 停止容器
docker stop TestName
# 取消暂停容器
docker paused TestName
# 删除容器
docker rm [id or name]
# 删除所有容器
docker rm $(docker ps -aq)
# 容器重新命名
docker rename TestName testname
# 查看容器所有的信息
docker inspect TestName
# 查看docker ip
docker inspect TestName | grep IPAddress
docker inspect --format "{{.NetworkSettings.IPAddress}}" TestName
# 将容器/usr路径下的文件拷贝到宿主机的/home目录下
docker cp [docker id]:/home /home
# 将宿主机/home下的文件拷贝到容器的/usr下
docker cp /home [docker id]:/home
5、注意事项
(1)、启动一个应用容器时,不能用/bin/bash,这样会导致服务无法启动。启动容器时使用 /bin/bash
作为启动命令通常是为了进入容器的交互式 Shell 环境,以便用户可以在容器内执行命令或查看容器的状态。但是,如果应用容器是一个服务(例如 Web 服务器、数据库等),通常不需要交互式 Shell 环境,而是需要运行容器内的服务进程。因此,对于服务型容器,通常会指定一个服务启动命令(例如启动 Web 服务器、数据库等)。
docker run -d --name my_nginx nginx
这将在容器内启动 Nginx 服务,而不是打开一个交互式 Shell。如果您启动应用容器时使用了 /bin/bash
,容器会启动 Shell 环境并等待用户输入命令,而不会启动服务进程,因此服务无法正常启动。
(2)、创建带终端的容器时,需要带上-it,以支持交互,这就是大家经常看到的-it与/bin/bash一期出现的原因。
第一期就更新到这里,纯属手巧,有用请转发点赞。。。。。。。。。。