Docker的使用
【Docker的使用】
安装Docker:在Linux或Windows上安装Docker引擎,并验证安装是否成功。
创建和运行容器:通过Docker命令(如docker search、docker pull、docker create、docker start等)来搜索、拉取、创建和启动容器。
构建和发布镜像:使用Dockerfile来定义镜像的构建过程,并通过docker build命令来构建镜像。构建完成后,可以使用docker push命令将镜像发布到Docker Hub等镜像仓库供其他人使用。
Docker通过其强大的功能和灵活性,已经成为现代软件开发和运维中不可或缺的工具之一。
Docker在线安装
基本要求:Linux要求内核3.0以上、CentOS 需要是7版本的
1.使用uname命令验证-查看即可
uname -r
2.如果已经安装过Docker,先卸载已安装的Docker。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.安装yum工具包和存储驱动
yum install -y yum-utils
4.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo上述方法默认是从国外的,不推荐
推荐使用国内的,阿里云docker镜像
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.安装docker
注意 : docker-ce 社区版 而ee是企业版。这里我们使用社区版即可。
旧版本的Docker引擎包可能叫做: docker 、 docker-engine 。
新版本的Docker引擎包叫做: docker-ce
yum install docker-ce docker-ce-cli containerd.io
6.启动docker
systemctl start docker
7.安装成功后,可以使用版本查询命令:docker version 确认是否成功。
8.配置阿里云镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决这个问题。
登录阿里云->搜索 “ 容器镜像服务 ”->获取加速器地址
通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
注意:阿里云的本人自己账号的镜像地址(需要自己注册有一个属于你自己的):https://xxxx.mirror.aliyuncs.com
9.验证配置是否成功
docker info
部署Docker容器
Docker安装和验证成功后,我么可以使用以下命令来部署一个简单的Docker容器,比如运行一个Nginx
服务器。
拉取Nginx镜像
docker pull nginx
运行Nginx容器
docker run -d -p 80:80 --name my-nginx nginx
Docker内网环境的离线安装
由于在很多情况下需要安装docker的虚拟机或服务器无法访问互联网,因此需要离线安装docker。
下载安装包
访问https://download.docker.com/linux/static/stable/选择合适的版本并下载
在下用的是:https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)
以下操作在拟安装的机器上进行
1、解压缩安装包
tar -zxvf docker-20.10.6.tgz
2、复制解压缩后的文件到指定文件夹
cp docker/* /usr/bin/
3、注册编辑docker服务
vim /etc/systemd/system/docker.service
4、复制下列内容到该文档中
[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
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
5、添加权限后启动
chmod +x /etc/systemd/system/docker.service
6、重新加载配置文件、和启动Docker
systemctl daemon-reload
启动Docker
systemctl start docker
8、设置开机自启
systemctl enable docker.service
9、验证是否安装成功
systemctl status docker
docker -v
命令自动补全
docker支持命令自动补全功能,当输入镜像名前几位时,可以按 tab 键自动补全镜像名称、tag等。
如果镜像中有ubuntu,查看输入ub按下tab是否可以补全
docker run ub
如果按下 tab 时没有自动补全,可以按以下步骤操作:
检查是否安装了 bash-completion (命令补全增强包)
检查有 /usr/share/bash-completion/bash_completion 这个文件
ls /usr/share/bash-completion/bash_completion
如果有 /usr/share/bash-completion 目录,但是没有 /usr/share/bash-completion/bash_completion 文件(centos6为 /etc/bash_completion 文件),则需要安装 bash-completion
yum -y install bash-completion
检查是否安装了docker的自动补全
检查/usr/share/bash-completion/completions文件夹下是否有docker开头的自动补全
docker安装完后会在该文件夹下生成自动补全文件docker
如果安装了docker-compose,则该文件夹下还会有 docker-compose文件
ll /usr/share/bash-completion/completions/docker*
如果已经安装了docker自动补全,使用 source 命令使其生效
source /usr/share/bash-completion/completions/docker
再次使用 tab 查看是否可以自动补全
如果镜像中有ubuntu,查看输入ub按下tab是否可以补全
docker run ub
如果有报错,且报错中提示 _get_comp_words_by_ref: command not found 。说明 bash-completion 的配置文件没有生效,需要 source 一下
对于centos7,bash-completion安装的是2.x版本,配置文件为/usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/bash_completion
如果是centos6,自动安装的bash-completion最新版为1.x版本,配置文件为/etc/bash_completion
bash /etc/bash_completion
再次使用 tab 查看是否可以自动补全