Docker部署

2019-09-26

Docker部署

[TOC]

版本修订

时间 修改内容 作者
2019-7-24 文档编写 ixiao9

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS 版本

uname -r

Docker文件下载

其他版本下载地址

https://download.docker.com/linux/static/stable/x86_64/

安装二进制包,解压到/usr/bin

tar zxf docker-17.12.1-ce.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
# --insecure-registry忽略https协议连接目标镜像库 (不要复制这句话)
ExecStart=/usr/bin/dockerd \
	--insecure-registry=http://172.16.45.9
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://docker.mirrors.ustc.edu.cn"],
  "hosts": [
        "tcp://0.0.0.0:2376",
        "unix:///var/run/docker.sock"
    ]
}

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],

指向docker仓库,可以更改可以删除

删除registry-mirrors会指向dockerhub.io默认地址拉去镜像

本地harbor仓库为http://172.16.45.9

重新加载并测试启动

systemctl daemon-reload
systemctl start 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到/usr/bin目录下并授执行权限

mv docker-compose /usr/local/bin
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/

查看Docker版本是否为1.8:

docker-compose -v

输出结果

docker-compose version 1.8.1, build 878cff1

导入导出镜像

导出镜像

先看一下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
命令         选项  读取加载的包名

进入Docker容器

docker exec -it  容器ID /bin/bash 

从宿主机拷文件到容器里面

假设容器名为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

启动Centos镜像

docker run -d -i -t <imageID> /bin/bash

将docker容器提交为镜像

docker commit -m "" -a "" 容器ID(可以简写) 镜像名称

-m 提示信息 -a 作者

docker commit -m "tomcat+jdk环境" -a "ixiao9" qweq1231awqe tomcat:版本

其他docker命令

批量停止容器

docker ps | xargs docker stop

批量删除容器

docker ps -a | xargs docker rm

批量删除镜像

docker images | xargs docker rmi