欢迎光临
我们一直在努力

Docker 快速部署与基础命令实操指南

概述

docker概述:基于go语言开发

docker文档地址:https://docs.docker.com/ 超详细

docker仓库地址:https://www.docker.com/products/docker-hub

容器化技术了解:

容器化技术并模拟的不是完整的系统。

docker安装

安装准备

卸载旧版docker

sudo yum remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine

设置镜像仓库

# 默认国外仓库
sudo yum-config-manager \\
–add-repo \\
https://download.docker.com/linux/centos/docker-ce.repo

# 阿里仓库
sudo yum-config-manager \\
–add-repo \\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

创建daemon.json文件配置数据存储路径(cents7)

{
"registry-mirrors": ["https://vpyuy82j.mirror.aliyuncs.com"],
"log-level": "info",
"live-restore": true,
"data-root": "/data/module/docker-18-6-3/data",
"default-ulimits": {
"nproc": {
"soft": 65535,
"hard": 65535
},
"nofile": {
"soft": 20000,
"hard": 40000
}
},
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}

创建daemon.json文件配置数据存储路径(cents8)

{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://mirrors.tuna.tsinghua.edu.cn",
"http://mirrors.sohu.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.awsl9527.cn"
],
"log-level": "info",
"live-restore": true,
"data-root": "/data/module/docker-18-6-3-ce/data",
"default-ulimits": {
"nofile": {
"name":"nofile",
"soft": 20000,
"hard": 40000
}
},
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}

在线安装

# 更新yum索引
sudo yum makecache fast

# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动docker
sudo systemctl start docker

# 查看安装是否成功
sudo docker version

在线卸载

# 移除安装应用
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除安装文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

离线安装

离线安装包下载地址:https://download.docker.com/linux/static/stable/x86_64/

# 安装包解压
tar -zxvf docker-18.06.3-ce.tgz

# 解压文件复制到/usr/bin目录
cp docker/* /usr/bin/

# 创建daemon.json配置文件
# 配置文件复制到/etc/docker/目录

# 创建docker.service服务文件

# 服务文件复制到/etc/systemd/system/目录并开放全部权限

# 重新加载服务文件
systemctl daemon-reload

# 启动docker
systemctl start docker

# 配置开机自启服务
systemctl enable docker.service

# 检查启动是否成功
systemctl status docker

创建docker.service服务文件

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd –selinux-enabled=false –insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

离线卸载

# 取消开机自启
systemctl disable docker

# 停止docker服务
systemctl stop docker

# 删除服务注册文件
rm -rf /etc/systemd/system/docker.service
rm -rf /usr/bin/containerd-shim
rm -rf /usr/bin/ctr
rm -rf /usr/bin/runc
rm -rf /usr/bin/docker*

# 删除命令
rm -rf /usr/bin/containerd

# 删除配置文件
rm -rf /etc/docker/

# 删除镜像和容器(默认镜像与容器安装位置)
rm -rf /var/lib/docker

离线安装卸载脚本

docker安装shell

#!/bin/bash
# 初始化数据路径
current_path="$(path)"
data_path="${current_path}/data"
# 处理转义字符
escaped_string=$(echo "$data_path" | sed 's/[.\\[\\]^$*\\/\\\\]/\\\\&/g')
data_path="\\"$escaped_string\\""
key="data-root"
target_path="${current_path}/docker-config/daemon.json"
echo ==================== 命令复制到/usr/bin目录 ====================
rsync -av –exclude={'install-package','*'} ./ /usr/bin

echo ==================== 复制service配置 ====================
cp ./docker-config/docker.service /etc/systemd/system/

echo ==================== 重新加载服务文件 ====================
systemctl daemon-reload

echo ==================== 启动docker ====================
systemctl start docker

echo ==================== 停止docker ====================
systemctl stop docker

echo ==================== 修改daemon配置 ====================
sed -i "s#\\"$key\\":\\s*\\".*#\\"$key\\": $data_path#" "$target_path"

echo ==================== 复制daemon配置 ====================
cp ./docker-config/daemon.json /etc/docker/

echo ==================== 启动docker ====================
systemctl start docker

echo ==================== 配置开机自启服务 ====================
systemctl enable docker.service

docker卸载shell

#!/bin/bash
echo ==================== 取消开机自启 ====================
systemctl disable docker.service

echo ==================== 停止docker服务 ====================
systemctl stop docker

echo ==================== 删除服务注册文件 ====================
rm -rf /etc/systemd/system/docker.service

echo ==================== 删除命令 ====================
rm -rf /usr/bin/containerd
rm -rf /usr/bin/containerd-shim
rm -rf /usr/bin/ctr
rm -rf /usr/bin/runc
rm -rf /usr/bin/docker*

echo ==================== 删除配置文件 ====================
rm -rf /etc/docker/

# 删除镜像和容器(默认镜像与容器安装位置)
rm -rf $(pwd)/data/*

docker镜像文件

Java镜像文件

# 基础镜像
FROM openjdk:8-jre
# 作者
LABEL maintainer="cwl"
# 环境变量
ENV MYPATH /data/module/java/
# 工作空间
WORKDIR $MYPATH
# 执行命令
ENTRYPOINT java -jar ${MYPATH}*.jar
CMD /bin/bash

创建镜像

docker build -f dockerfile -t java:1.0 .

docker build -t java:1.0 .

docker基础命令

docker镜像命令

# 搜索镜像。
docker search

#下载镜像
docker pull

# 删除镜像

docker rmi -f 镜像id

docker rmi -f 镜像id 镜像id 。。。

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

docker容器命令

# 新建并启动容器 -id(后台方式启动),-p(指定暴露端口),–name(容器名称),-v(挂载宿主机与容器的文件路径),最后是镜像名称以及版本
docker run -id \\
-p 8181:8181 \\
-p 8282:8282 \\
–name=java-container \\
-v /opt/module/datadisk/data-java/:/datadisk/data/ \\
-v /opt/module/datadisk/src-java/:/datadisk/jar/ \\
-v /opt/module/datadisk/java-hosts/hosts:/etc/hosts \\
-v /opt/module/datadisk/ldkso/libhasp_linux_x86_64_32923.so:/usr/lib/libhasp_linux_x86_64_32923.so \\
-v /opt/module/datadisk/ldkso/libHASPJava_x86_64.so:/usr/lib/libHASPJava_x86_64.so \\
-v /etc/localtime:/etc/localtime:ro \\
–privileged=true \\
java:1.0

# 删除指定的容器
docker rm 容器id

# 删除所有的容器
docker rm -f $(docker ps -aq)

# 查看日志
# 实时查看带时间戳的日志
docker logs -f -t my_container

# 查看最近 100 行日志
docker logs –tail 100 my_container

# 查看过去 1 小时内的日志
docker logs –since "1h" my_container

# 查看某时间段日志(需格式正确)
docker logs –since "2025-10-29T10:00:00" –until "2025-10-29T11:00:00" my_container

# 查看镜像元数据
docker inspect 容器 id

# 进入正在运行的容器
docker exec -it 容器id /bin/bash

# 从容器中拷贝数据到容器外
docker cp 容器id:容器内路径 容器外路径

docker cp 8cb38e2df5e8:/etc/nginx/conf.d/default.conf /opt/software/

docker cp /opt/module/datadisk/mongodb/conf/mongo.conf 3da303d6341a:/data/configdb/mongo.conf

docker cp /opt/module/datadisk/mysql/clouddata.sql 0232a3a9281a:/backup

赞(0)
未经允许不得转载:171主机测评 » Docker 快速部署与基础命令实操指南
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址