Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。
提示
基于ubuntu 20.04安装
#卸载 sudo apt-get remove docker docker-engine docker.io containerd runc #下载 curl -fsSL https://get.docker.com/ | sh #镜像安装 sudo curl -fsSL https://github.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun #开机启动 systemctl enable docker # 启动docker服务 systemctl start docker
sudo docker run hello-world
出现Hello from Docker! 表示安装成功
官方下载地址 选择自己合适的版本
创建文件夹
mkdir /opt/app
使用xftp上传到这个文件夹
进入文件夹
cd /opt/app
解压docker包
sudo tar -zxvf docker-26.1.3.tgz
安装docker
将解压出来的docker文件内容拷贝或者移动到 /usr/bin/目录下
sudo cp docker/* /usr/bin/
编写docker.service加入Linux服务当中并开启守护进程。
sudo vim /etc/systemd/system/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 -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536 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
按esc,输入:qw保存并退出
为docker.service添加文件可执行权限
chmod +x /etc/systemd/system/docker.service
配置成功后,重新加载 daemon 服务
sudo systemctl daemon-reload
为docker设置开机自启动
sudo systemctl enable docker
启动docker
sudo systemctl start docker
编辑daemon.json文件
sudo vi /etc/docker/daemon.json
内容:
bash{
"registry-mirrors": [
"https://hub.rat.dev",
"https://docker.1panel.live",
"https://dockerproxy.cn",
"https://docker.m.daocloud.io",
"https://dockerpull.org"
]
}
如果有自己的阿里云容器服务,可以将自己的服务地址写上去
重启docker
sudo systemctl daemon-reload sudo systemctl restart docker
默认情况下,docker 命令会使用 Unix socket (opens new window)与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
sudo groupadd docker
sudo usermod -aG docker $USER
重启终端即可不用加sudo
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!