docker基础语法扫盲篇

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一期出现的原因。

第一期就更新到这里,纯属手巧,有用请转发点赞。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值