文章目录
一、安装
docker安装分为在线方式和离线方式。
1、在线安装
官方一键安装方式
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2、离线安装
可以预先下载Docker的离线版本,再拷贝到系统中进行手动安装,static离线包下载地址:https://download.docker.com/linux/static/stable/。
选择对应的主机CPU架构:
假设下载了docker-20.10.9.tgz
- 解压文件
把文件docker-20.10.9.tgz
拷贝到主机/opt
目录,进入该目录,执行解压命令:tar ‐xvf docker‐20.10.9.tgz
。 - 编辑
/etc/profile
文件,配置环境变量
export PATH=/opt/docker:$PATH
- 将Docker注册为service,创建
docker.service
文件
vim /lib/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]
ype=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=/opt/docker/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
- 添加服务文件权限
chmod +x /lib/systemd/system/docker.service
- 重载配置文件
systemctl daemon‐reload
- 设置开机自启
systemctl enable docker.service
- 启动Docker
systemctl start docker
二、操作
1、查看状态
systemctl status docker
2、查看版本
docker version
3、镜像仓库
(1)设置国内镜像源
编辑配置文件/etc/docker/daemon.json
,添加
{
"bip": "128.128.0.1/16",
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
],
"experimental": true
}
然后重启docker,执行
systemctl daemon-reload
systemctl restart docker
(2)登录仓库
docker login -u 用户名 -p 密码 镜像仓库
如果没有指定仓库,则默认官方仓库为:Docker Hub
(3)登出仓库
docker logout 镜像仓库
如果没有指定仓库,则默认官方仓库为:Docker Hub
(4)拉取镜像
docker pull 镜像名[:标签]
例如:docker pull my.com:4335/project/demo:1.0.0
(5)推送镜像
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push 镜像名[:标签]
例如:docker push my.com:4335/project/demo:1.0.0
4、镜像
(1)查看镜像
docker images
(2)标记镜像
标记本地镜像,将其归入某一仓库。
docker tag 镜像名[:标签] 镜像仓库[:标签]
例如:docker tag project/demo:1.0.0 my.com:4335/project/demo:1.0.0
(3)构建镜像
命令用于使用Dockerfile
创建镜像。
docker build -t 镜像名[:标签] 目录
-t
:给镜像加一个标签
目录
:Dockerfile文件所在目录
例如:docker build -t project/demo:1.0.0 .
(4)保存镜像
docker save -o 本地镜像文件名 镜像名
例如:docker save -o demo-1.0.0.tar demo
(5)加载镜像
docker load ‐i 本地镜像文件
或
docker load < 本地镜像文件
例如:docker load -i demo.tar
或docker load < demo.tar
(6)删除镜像
docker rmi -f 镜像ID
-f
:强制删除。
5、容器
(1)查看容器
docker ps -a
-a
:查看所有的容器(包括非正在运行中的)
(2)运行容器(创建并启动)
docker run -dit \
--name=容器名称 \
--restart=策略 \
--rm \
--privileged \
-v 主机目录:容器目录 \
-p 主机端口:容器端口 \
-e "MONGO_USER=root" \
镜像名[:标签]
-d
:后台运行容器,并返回容器ID。
-i
:以交互模式运行容器,通常与-t
同时使用。
-t
:为容器重新分配一个伪输入终端,通常与-i
同时使用。
--name
:为容器指定一个名称。
--restart
:指定容器停止后的重启策略。no
:容器退出时不重启。on-failure
:容器故障退出(返回值非零)时重启。always
:容器退出时总是重启。
--rm
:指定容器停止后自动删除容器(不支持以docker run -d
启动的容器)。
--privileged
:指定容器是否为特权容器,特权容器拥有所有的capabilities。
-v
:指定路径映射。
-p
:指定端口映射。
-e
:设置环境变量。
(3)启动容器
docker start 容器ID|容器名称
(4)停止容器
docker stop 容器ID|容器名称
(5)重启容器
docker restart 容器ID|容器名称
(6)删除容器
docker rm -f 容器ID|容器名称
-f
:强制删除运行中的容器
(7)进入容器
docker exec -it 容器ID|容器名称 /bin/bash
进入容器后,如果要退出则输入命令:exit
。