Docker实战(一) Docker的安装
一、Docker的安装与部署
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS 版本
uname -r
Docker文件下载
其他版本下载地址
https://download.docker.com/linux/static/stable/x86_64/
安装二进制包,解压到/usr/bin
tar -zxf docker-18.09.9.tgz && cp docker/* /usr/bin
创建Docker启动脚本
vim /usr/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]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
在/etc下创建名为docker
的文件夹
mkdir -p /etc/docker && vim /etc/docker/daemon.json
daemon.json
内容为
registry-mirrors 为仓库地址 可更改 可使用外网地址https://registry.docker-cn.com
{ "registry-mirrors": ["https://sg0wj9mg.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts":{
"max-size":"10m",
"max-file":"10"
}
}
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
指向docker仓库,可以更改可以删除
删除registry-mirrors会指向dockerhub.io默认地址拉去镜像
本地harbor仓库为http://172.16.45.9
"log-opts":"max-size"限制单个容器日志大小的上限;"max-file":"3"意味着一个容器有三个日志,分别是json.log、json.log.1、json.log.2。即:容器最多有三个日志文件,每个日志文件最大为2M。
需要注意的是:设置的日志大小规则,只对新建的容器有效
参考文章
重新加载并测试启动
systemctl daemon-reload && systemctl enable docker && systemctl restart docker.service
执行docker version查看效果
[root@localhost docker]# docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:13:43 2018
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.1-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:20:43 2018
OS/Arch: linux/amd64
Experimental: false
查看网络是否有docker
虚拟网卡
ifconfig 或 ip a 命令
查看网络是否有名为`docker0`虚拟网卡
安装docker-compose
docker-compose下载地址
https://github.com/docker/compose/releases
上传docker-compose到/usr/local/bin
目录下并授执行权限
mv docker-compose /usr/local/bin
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/
查看docker-compose版本:
docker-compose -v
输出结果
docker-compose version 1.8.1, build 878cff1
普通用户启动Docker
需要在服务器添加docker
组
groupadd docker
将非root权限用户添加到docker
用户组内
usermod -aG docker user1 user2
组 用户1 用户2(添加多个用户到组里面,需重新启动docker)
二、Docker常用命令
查看容器信息
docker ps (存活容器的信息)
docker ps -a (所有已存在容器的信息)
启动镜像
docker run -dit --restart=always --name=string --net=host <imageID>
快速删除容器
docker rm -f container ID
查看容器日志信息
docker logs container ID #查看所有日志信息
docker logs -f container ID #滚动查看所有日志信息
docker logs --tail 100 container ID #查看最后100行日志信息
ocker logs -f --tail 100 container ID #滚动查看最后100行日志信息
进入Docker容器
docker exec -it 容器ID /bin/bash
导出镜像
先看一下docker有哪些镜像
[root@localhost New Folder]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vmware/photon 1.0 4b481ecbef2a 15 months ago 130MB
有个名为vmware/photon的镜像,版本为1.0那么导出命令为
docker save -o photon.tar vmware/photon:1.0
命令 选项 导出的包名 镜像名 : 版本标签
导入镜像
将photon.tar
放入任意位置执行
docker load -i photon.tar
命令 选项 读取加载的包名
从宿主机拷文件到容器里面
假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
从容器里面拷文件到宿主机
假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js, 现在要将test.js从容器里面拷到宿主机的/opt路径下
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
#### 将docker容器提交为镜像
docker commit -m "" -a "" 容器ID(可以简写) 镜像名称
-m 提示信息 -a 作者
如
```shell
docker commit -m "tomcat+jdk环境" -a "ixiao9" qweq1231awqe tomcat:版本
其他docker命令
批量停止容器
docker ps | xargs docker stop
docker stop $(docker ps -a -q)
批量删除容器
docker ps -a | xargs docker rm
批量删除镜像
docker images | xargs docker rmi