Skip to content

Docker 容器技术

2267字约8分钟

2025-07-15

前言:--------------->>> 献给那些不计成败、勇于尝试的人们。

​ 容器是轻量且可移植的仓库,包含应用程序及其依赖的组件。

systemctl start docker # 启动docker服务(停止同理)

配置文件(ssh 连接使用)

# 配置网络
vi /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络服务

systemctl restart network.service # 重启网络服务
service network restart # 重启服务

配置文件

# config-network
TYPE=Ethernet                        //网络类型:Ethernet以太网
BOOTPROTO=none                       //引导协议:自动获取、static静态、none不指定
DEFROUTE=yes                         //启动默认路由
IPV4_FAILURE_FATAL=no                //不启用IPV4错误检测功能
IPV6INIT=yes                         //启用IPV6协议
IPV6_AUTOCONF=yes                    //自动配置IPV6地址
IPV6_DEFROUTE=yes                    //启用IPV6默认路由
IPV6_FAILURE_FATAL=no                //不启用IPV6错误检测功能
NAME=eno16777736                     // 网卡设备的别名
UUID=90528772-9967-46da-b401-f82b64b4acbc         //网卡设备的UUID唯一标识号
DEVICE=eno16777736                   // 网卡的设备名称
ONBOOT=yes                           //开机自动激活网卡
DNS1=6.6.6.6                         //DNS域名解析服务器的IP地址
IPADDR=192.168.1.199                 //网卡的IP地址
PREFIX=24                            //子网掩码
GATEWAY=192.168.1.1                  //默认网关IP地址
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=192.168.2.2             #你想要设置的固定IP,理论上192.168.2.2-255之间都可以,请自行验证;
NETMASK=255.255.255.0          #子网掩码,不需要修改;
GATEWAY=192.168.2.1            #网关,这里是你在“2.配置虚拟机的NAT模式具体地址参数”中的

完整文件

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.110.133"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="1.2.4.8"
GATEWAY="192.168.110.2"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ff50d26b-a431-41e3-a257-2143266fda98"
DEVICE="ens33"
ONBOOT="yes"

yum.repo 文件下修改 yum 源(阿里源)

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

centos 镜像

# 率先备份文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# centos 8
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
// 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# centos 7
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
// 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

----------------------------------------
yum clean all     # 清除系统所有的yum缓存 |
yum makecache     # 生成yum缓存         |

# 查看yum源
yum repolist all

# 查看可用yum源
yum repolist enabled

CentOS 7 配置 docker、镜像加速、卸载

查看系统信息
uname -a	             #查看系统信息
lsb_release -a           #命令存在表示为ubuntu系统
cat /etc/redhat-release  #文件存在为centos
配置
# 1. 卸载旧版docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2. 需要的安装包
sudo yum install -y yum-utils

# 3. 设置镜像仓库
# 这个是官方的, 不推荐
#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 	# 推荐使用阿里云, 贼快

# 更新yum软件包索引
sudo yum makecache fast

# 4. 安装docker相关的	docker-ce 社区版	ee企业版
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 5. 启动docker
sudo systemctl start docker

# 6. 使用docker version查看是否安装成功
docker version

# 7. hello world
sudo docker run hello-world
国内镜像
Docker中国区官方镜像: https://registry.docker-cn.com
腾讯源: https://mirror.ccs.tencentyun.com
网易: http://hub-mirror.c.163.com
中科大: https://docker.mirrors.ustc.edu.cn
配置国内镜像

docker 镜像加速配置

# 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
卸载
# 1. 停止docker服务
systemctl stop docker

# 2. 卸载镜像
sudo yum remove docker-ce docker-ce-cli containerd.io

# 3. 删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 3. /var/lib/docker	docker的默认工作路径

配置 Go

# 下载 golang (从go中文网下载)
wget https://studygolang.com/dl/golang/go1.18.2.linux-amd64.tar.gz

配置 python

# 安装依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel libffi-devel python-devel mariadb-devel
# 安装python3.8.6
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
在 centos 中配置安装 goland 编译器
# 1. 解压重命名--移动目录
~$ tar -zxvf goland压缩包名  -C /usr/local
~$ sudo mv /usr/local/GoLand-2019.1.3/ /usr/local/GoLand
~$ ll /usr/local/
total 48
drwxr-xr-x 12 root root 4096 7月  23 17:08 ./
drwxr-xr-x 10 root root 4096 2月  10 08:12 ../
drwxr-xr-x  2 root root 4096 2月  10 08:12 bin/
drwxr-xr-x  2 root root 4096 2月  10 08:12 etc/
drwxr-xr-x  2 root root 4096 2月  10 08:12 games/
drwxr-xr-x 10 root root 4096 7月   9 05:29 go/
drwxr-xr-x  8 root root 4096 7月  23 17:06 GoLand/
drwxr-xr-x  2 root root 4096 2月  10 08:12 include/
drwxr-xr-x  3 root root 4096 6月  30 00:32 lib/
lrwxrwxrwx  1 root root    9 6月  29 23:43 man -> share/man/
drwxr-xr-x  2 root root 4096 2月  10 08:12 sbin/
drwxr-xr-x  6 root root 4096 2月  10 08:15 share/
drwxr-xr-x  2 root root 4096 2月  10 08:12 src/

# 2. 将启动脚本加入到用户目录下(/usr/local/)即可在任意位置启动
~$ cd /usr/local/GoLand/bin/
~$ sudo ln -s $(pwd)/goland.sh /usr/bin/goland.sh

# 2. 配置别名独立启动、运行
~$ vim .bashrc
...
alias goland='nohup goland.sh & >/dev/null'

修改配置文件后,立即生效命令(source)

source命令通常用于重新执行刚修改的初始化文件,
	使之立即生效,而不必注销并重新登录。
-- 文件修改后,要么直接运行。要么使用命令改变。
source ./filename

Linux 中(centos7)

yum install git

git config --global user.email "1614355756@qq.com"

git config --global user.name “kong"

git config --global –list

使用 git clone 地址

# 从阿里云下载 docker 容器

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

去阿里云里面配置镜像加速地址

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

 "registry-mirrors": ["https://9tnchjtx.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

# 查看服务是否启动

ps -ef | grep docker

# 列出当前有的

docker ps -a

# 删除某条执行完毕后的命令

docker rm 7e8245a34e71

# 运行某个镜像

sudo docker run hello-world

# 重启 docker 服务

sudo systemctl restart docker

# 更改路径

sudo systemctl daemon-reload

# 下载 docker compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname`-`uname -m` > /usr/local/bin/docker-compose

# 给定文件权限(可执行)

sudo chmod +x /usr/local/bin/docker-compose

# 测试

docker-compose -v

# 下载 mysql 镜像

docker pull mysql:5.7

# 查看镜像文件

docker images

# 设置 MYSQL

docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/log:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

# 如果显示退出(使用命令查看日志)

docker logs 225cf1784fc9

# 设置启动

找到 mysql 的 id 225cf1784fc9

docker ps -a 查到id

# 配置

docker exec -it 225cf1784fc9 /bin/bash

# 连接到数据库(修改)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

centos7 配置 python

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel libffi-devel python-devel mariadb-devel

# 下载python 3.8
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz

# 解压
 tar -zxvf Python-3.8.6.tgz -C /tmp
 cd /tmp/Python-3.8.6/
# 编译
./configure --prefix=/usr/local
# 清除
make
make altinstall
# 更改软连接
ln -s /usr/local/bin/python3.8 /usr/bin/python3
ln -s /usr/local/bin/pip3.8 /usr/bin/pip3

# 如果装错,如何删除软连接
rm -rf ./python3

Ubuntu 中配置 docker

# 先卸载可能存在的旧版本
apt remove docker docker-engine docker-ce docker.io
# 更新apt包索引
apt update
# 安装以下包以使apt可以通过HTTPS使用存储库
apt install -y apt-transport-https ca-certificates curl software-properties-common
使用阿里云的docker源进行安装的话要添加对应源的密钥,docker官方的要对应官方的密钥,选择不同的源安装密钥不一样的
# 镜像源
-- 阿里云
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

-- 国外官方
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

-- ubuntu中软件源的位置
ubuntu的系统源文件位置位于/etc/apt/sources.list

add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
----------------------------------------------------------
>>> 其中$(lsb_release -cs)是个系统函数,可以自动获取当前ubuntu系统的版本,arm64对应的cpu的版本,我的主板是arm的,如果是电脑或者服务器注意是安装 amd64的,需要把arm64替换成amd64
同理第四步,添加docker镜像源的时候,网址里面的域名也要看选择哪个源而变化的,上面举例的是docker官方的
也可以使用阿里的源添加进去
https://developer.aliyun.com/mirror/docker-ce
----------------------------------------------------------

# 再次索引
apt update

# 安装最新版
apt install  docker-ce

# 验证docker
systemctl status docker

# 向source.list中添加软件源(可选)
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable