1、安装环境
此处在Centos7进行安装,可以使用以下命令查看CentOS版本
lsb_release -a
在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
yum list installed | grep docker
yum -y install docker
-y表示不询问安装,直到安装成功,安装完后再次查看安装列表
2.3 启动docker
systemctl start docker
2.4 查看docker服务状态
systemctl status docker
3、离线安装模式
3.1 安装包官方地址:
https://download.docker.com/linux/static/stable/x86_64/
可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz
3.2 解压
tar -zxvf docker-18.06.3-ce.tgz
3.3 将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
3.4 在/etc/systemd/system/目录下新增docker.service文件,内容如下,这样可以将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 --selinux-enabled=false --insecure-registry=127.0.0.1
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
此处的–insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝。
3.5 启动docker
给docker.service文件添加执行权限
chmod +x /etc/systemd/system/docker.service
重新加载配置文件(每次有修改docker.service文件时都要重新加载下)
systemctl daemon-reload
启动
systemctl start docker
设置开机启动
systemctl enable docker.service
查看docker服务状态
systemctl status docker
运行容器:docker run -it 镜像名 /bin/bash
退出容器:exit 或者 Ctrl+P+Q
查看所有容器:docker ps -a
查看运行的容器:docker ps
重启容器:docker restart 容器ID
重启容器后进入交互式:docker start -i 5c6ce895b979
进入容器:docker attach 容器ID
docker exec -it 容器ID /bin/bash
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器
博客园首页新随笔联系管理订阅订阅随笔- 153 文章- 11 评论- 2
docker 命令 查看启动进程及日志
一 docker ps
查看正在运行的docker容器有哪些。
二 docker ps -a
查看所有docker容器,包括不在running状态的。
三 docker logs 参数 容器id
查看具体某一个容器的日志。
其中参数可选择的有:
-f follow 表示实时显示日志
-t timestamp 表示显示时间戳
–tail=n 或 --tail n 表示显示末尾n行
例如:docker logs -f --tail=200 xxxx,表示实时加载日志信息,并且仅显示最后200行。
四 docker logs 参数 容器id | grep str
查找日志文件中含有特定字符串的行
五 docker logs 参数 容器id | grep str >> out.txt
查找日志文件中含有特定字符串的行,并且输出到指定文件out.txt中。
六 根据时间查看log
–since 从指定时间点到最新的日志
–until 指定结束时间点
docker logs --since 2020-04-10T19:50:00 container
docker logs --since 2020-04-10T19:30:00 --until 2020-04-10T20:05:00 contailer
linux下的docker操作命令及异常
docker 服务器开机自启动:
1.systemctl is-enabled docker.service 检查服务是否开机启动
2.systemctl enable docker.service 将服务配置成开机启动
3.systemctl start docker.service 启动服务
systemctl 相关其他命令:
systemctl disable docker.service 禁止开机启动
systemctl stop docker.service 停止
systemctl restart docker.service 重启
容器开机启动:
创建容器时候指定restart参数:
docker run -it -p 6379:6379 --restart=always --name redis -d redis
对已经创建的容器用docker update 更新:
docker update --restart=always xxx
–restart具体参数值详细信息 :
no - 容器退出时,不重启容器
on-failure - 只有在非0状态退出时才从新启动容器
always - 无论退出状态是如何,都重启容器
在本地项目中,用到了linux虚拟机docker中的MySQL,Rabbitmq,因为不想让linux虚拟机自动开启,又觉得开机后启动linux,又要进去手动运行MySQL镜像,有些麻烦。
有种方式可以解决这个麻烦:
docker update --restart=always “镜像id或容器别名”
这样linux开机之后,docker就会自动运行你设置的镜像,也不用我登入linux手动开启了
关闭自动开启:
docker update --restart=no “镜像id或镜像别名”