离线安装
Docker版本:18.06.1:官方下载
tar -xvf docker-18.06.1-ce.tgz
//将解压出来的docker文件内容移动到 /usr/bin/ 目录下
cp docker/* /usr/bin/
//将docker注册为service
vim /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
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
//添加文件权限并启动docker
chmod +x /etc/systemd/system/docker.service
//重载unit配置文件
systemctl daemon-reload
//启动Docker
systemctl start docker
//设置开机自启
systemctl enable docker.service
docker -v
在线安装
ubuntu:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install -y docker.io
centos:
yum -y update
yum install -y docker-engine
yum install -y docker-selinux
yum install docker
启动失败
//第一种
curl -fsSL https://get.docker.com/ | sh
//第二种
yum -y update
yum remove docker
yum remove docker-selinux
vi /etc/yum.repos.d/docker.repo
(复制进去)
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
yum install docker-engine
yum install -y docker-engine
yum install -y docker-selinux
yum install docker
systemctl start docker.service
部署项目
1、拉取tomcat镜像
docker pull tomcat
2、创建容器
docker run -it --name webdemo -p 8080:8080 tomcat
-v:挂载点,主机映射目录/容器映射目录
-p:端口,主机/容器
tomcat:镜像名称
webdemo:创建的容器名称
3、部署项目
docker cp demo.war webdemo:/usr/local/tomcat/webapps
webdemo:容器名称,也可以用容器id
导入和导出
1、镜像
导出:docker save -o 文件名 镜像id/name
导入:docker load --input 文件名
2、容器
导出:docker export -o 文件名 容器id/name
导入:docker import 文件名
导入和导出一一对应
save—load
export–import
镜像仓库
链接: dockerHub
1、注册用户
2、docker登陆:docker login
3、修改镜像名称:docker tag 镜像id 用户名/镜像名称:版本
4、上传:docker push 镜像名称:版本
注:镜像名称前面必须是用户名
如何搭建本地镜像仓库
1、下载registry镜像:docker pull registry
2、创建仓库容器
docker run -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry
3、配置仓库地址
新建文件: vim /etc/docker/daemon.json
添加:{“insecure-registries”:[“192.0.0.56:5000”]}
重启docker:service docker restart
4、修改镜像名称:docker tag 192.0.0.56:5000/tomcat
5、上传:docker push 镜像名称
更新版本
cd /opt
wget https://get.docker.com/builds/Linux/x86_64/docker-1.9.1
chmod +x docker-1.9.1
sudo mv docker-1.9.1 /usr/bin/docker
service docker restart
常用命令
下载镜像:docker pull 镜像名称
上传镜像:docker push 镜像名称
进入容器内部:docker exec -it webdemo /bin/bash
查看镜像:docker images
查看全部容器:docker ps -a
查看启动容器:docker ps
启动容器:docker start webdemo
停止容器:docker stop webdemo
停止所有容器:docker stop $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
删除容器:docker rm webdemo
删除镜像:docker rmi 镜像id
改变镜像名称:docker tag 镜像id tomcat:latest
容器生成新的镜像:docker commit -a “作者” -m “描述” 容器id 名称:latest
将web应用拷贝到tomcat容器:docker cp demo.war webdemo:/usr/local/tomcat/webapps
可视化插件shipyard中文版安装
下载镜像
docker pull rethinkdb
docker pull microbox/etcd
docker pull shipyard/docker-proxy
docker pull swarm
docker pull dockerclub/shipyard
修改原安装脚本为中文版安装脚本
#下载官方脚本
wget https://shipyard-project.com/deploy
若下载失败请使用
wget https://raw.githubusercontent.com/shipyard/shipyard-project.com/master/site/themes/shipyard/static/deploy
#替换官方脚本
grep -n shipyard:latest deploy
sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy
设置web访问端口(根据需要修改)
#检查8080端口是否被占用,若占用需修改端口
yum install -y net-tools //安装net-tools工具包,若已安装可跳过此步骤
netstat -tlnp | grep 8080 //查看宿主机8080端口是否被占用
#配置修改
grep -n 'PORT:-8080' deploy
SHIPYARD_PORT=${PORT:-8080}
修改为
SHIPYARD_PORT=${PORT:-指定端口}
#替换官方脚本
grep -n shipyard:latest deploy
sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy
安装
sh deploy
如何增加一个节点
curl https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://主服务器IP:4001 bash
若下载失败请使用
curl -sSL https://raw.githubusercontent.com/shipyard/shipyard-project.com/master/site/themes/shipyard/static/deploy | ACTION=node DISCOVERY=etcd://主节点IP:4001 bash -s
使用
浏览器输入:http://主机IP:8080
默认账号:admin
默认密码:shipyard
启动shipyard的脚本
vim shipyard_start.sh
添加内容
PREFIX=shipyard
restart_rethinkdb() {
docker $1 $PREFIX-rethinkdb
}
restart_discovery() {
docker $1 $PREFIX-discovery
}
restart_certs() {
docker $1 $PREFIX-certs
}
restart_proxy() {
docker $1 $PREFIX-proxy
}
restart_swarm_manager() {
docker $1 $PREFIX-swarm-manager
}
restart_swarm_agent() {
docker $1 $PREFIX-swarm-agent
}
restart_controller() {
docker $1 $PREFIX-controller
}
if [ $# -ne 1 ];
then
echo "Usage:sh shipyard.sh {start|stop|restart}"
exit 1
fi
echo "Restarting Shipyard Begin."
echo "-> ${1}ing Database"
restart_rethinkdb $1
echo "-> ${1}ing Discovery"
restart_discovery $1
echo "-> ${1}ing Cert Volume"
restart_certs $1
echo "-> ${1}ing Proxy"
restart_proxy $1
echo "-> ${1}ing Swarm Manager"
restart_swarm_manager $1
echo "-> ${1}ing Swarm Agent"
restart_swarm_agent $1
echo "-> ${1}ing Controller"
restart_controller $1
echo "${1}ing Shipyard Done."
启动shipyard
sh shipyard_start.sh start