简介
Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建APP。
Docker Hub:https://hub.docker.com/
Docker官网:https://www.docker.com/
下载地址:https://mirrors.aliyun.com/docker-ce/
Docker介绍:https://www.cnblogs.com/hwlong/p/9158982.html
配置方法
CentOS 7(使用yum进行安装)
# 1. 安装必要的一些系统工具
yum -y install yum-utils device-mapper-persistent-data lvm2
# 2. 添加软件源信息
yum-config-manager --add-repo=http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3. 修改配置文件
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 4. 更新并安装Docker-ce
yum makecache fast
yum -y install docker-ce
# 5. 开启Docker,并添加开机自启
systemctl start docker && systemctl enable docker
注:如果是普通用户需要命令前加
sudo
,前提是需要用户在wheel组里
安装校验
docker version
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:41 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:44:05 2021
OS/Arch: linux/amd64
Experimental: false
配置Docker镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
# 如何获取阿里云加速地址:登录到阿里云 --> 控制台 --> 左上角三道线 --> 容器镜像服务 --> 镜像加速器
Docker基础命令
docker version # 查看docker版本
docker info # 查看docker详情
docker --help # 查看docker帮助
镜像相关
docker search image[:version] (centos:7) # 搜索镜像
docker pull image[:version] (centos:7) # 下载镜像
docker push image[:version] # 上传镜像
docker images # 查看本地镜像
docker rmi image[:version]/imageID # 删除镜像
docker save -o centos.tar centos:7 # 将镜像导出到本地
docker load < centos.tar # 导入镜像
docker load --input centos.tar
docker tag centos:7 centos:test # 给镜像打标签
容器相关
docker ps # 查看当前运行的容器
docker ps -a # 查看所有容器(包含已停止)
docker start containerName/containerID # 启动容器
docker stop containerName/containerID # 停止容器
docker [un]pause containerName/containerID # 挂起容器/取消挂起
docker create -it --name=containerName # 创建容器,但不运行
docker rm [-f] containerName/containerID # 删除容器 -f强制删除
# 创建并运行容器
## 交互式(进入容器)
docker run -it --name=containerName image[:version]
## 守护式(后台运行,不进容器)
docker run -id --name=containerName image[:version]
# 进入容器(exit退出容器)
docker exec -it containerName/containerID /bin/bash
# 批量删除容器
docker rm -f `docker ps -qa`
docker ps -qa | xargs rm -f
编写一个脚本,此脚本可任意切换容器
vim /usr/local/sbin/docker-enter
#!/bin/sh
if [ -e $(dirname "$0")/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi
if [ -z "$1" ]; then
echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
PID=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit 1
fi
shift
OPTS="--target $PID --mount --uts --ipc --net --pid --"
if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
"$NSENTER" $OPTS su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "$@"
fi
fi
chmod +x /usr/local/sbin/docker-enter
容器内操作,容器内最小化安装,很多命令用不了
# 检测其命令是属于哪个软件包yum provides命令
yum provides ip
iproute-4.11.0-25.el7_7.2.x86_64 : Advanced IP routing and network device configuration