docker安装和使用及可视化操作

离线安装

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值