Docker实践

使用本地yum安装 wget vim

调用阿里yum源安装

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

aliyunDNS:223.5.5.5  223.6.6.6
谷歌:8.8.8.8
yum install -y yum-utils device-mapper-persistent-date lvm2

配置docker-ce  yum源

yum-config-manager --add-repo http://mirrors,aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all &&yum update&&yum makecache fast

安装docker

yum -y install docker-ce

启动docker

systemctl enable docker
systemctl start docker

配置镜像加速

由于国内访问docker原站点非常困难,国内的云服务提供商提供了加速功能。我们使用阿里云进行docker加速

地址:https://dev.aliyun.com/search.html

添加你的专属地址

sed -i“s|ExceStart=/usr/bin/dockerd  --registry-mirror=https://fz5yth0r.mirror.aliyuncs.comlg” /usr/lib/systemd/system/docker.service


systemctl daemon-reload
systemctl restart docker

查看是否加速

docker info
docker info的Registry -Mirrors:里面是否有内容
ps aux|grep dockerd

查看是否有——registry-mirror=

获取镜像

Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会从镜像仓库下载(默认是 Docker  Hub公共注册服务器中的仓库)。

下载:

docker pull ubuntu:12.04

从其他仓库下载时需要指定完整的仓库注册服务器地址,eg:

sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04

sudo docker run -t -i ubuntu:12.04/bin/bash

(创建一个容器,让其中运行bash应用)

ls

exit

列出

sudo docker images

(使用docker images显示本地已有的镜像)

sudo docker run -t -i ubuntu:14.04 /bin/bash

(指定使用镜像ubuntu:14.04来启动一个容器)

创建镜像
修改已有镜像

解决docker运行容器的网络问题

vi /usr/lib/sysctl.d/00-system.conf

添加如下代码:

net.ipv4.ip_forward=1

重启network服务

systemctl restart network

查看是否修改成功

sysctl net.ipv4.ip_forward

如果返回为“net.ipv4.ip_forward=1”则表示成功了

docker run -t -i centos /bin/bash
ping www.baidu.com
exit

先使用下载的镜像启动容器

sudo docker run -t -i training/sinatra/bin/bash

在容器中添加json 和 gem 两个应用

gem install json

改变后,用docker commit命令来提交更新后的副本

docker ps -a

(找到你想做副本的容器ID)

sudo docker commit -m“Added json gem” -a “Docker Newbee” 0b2616b0e5a8 ouruser/sinatra:v2

(使用docker images来查看新创建的镜像)

sudo docker images

(之后,可以使用新的镜像来启动容器)

sudo docker run -t -i.ouruser/sinatra:v2 /bin/bash

利用dockerfile来创建镜像

新建一个目录和一个Dockerfile

mkdir sinatra
cd sinatra
touch Dockerfile

Dockerfile 中 每一条指令都创建镜像的一层,

vim  Dockerfile
FROM ubuntu14.04
RUN apt-get -qq update
RUN apt-getq -qqy install ruby ruby-dev
RUN gem install sinatra

编写完成Dockerfile 后可以使用docker build 来生成镜像

sudo docker build -t=“ouruser/sinatra:v2”.

其中-t标记来添加tag,指定新的镜像的用户信息。“.”是Dockerfile 所在的路径(当前目录),也可以替换为一个具体的Dockerfile的路径。

此外,还可以利用ADD命令复制本地文件到镜像;用EXPOSE命令来向外部开放端口;用CMD命令来描述容器启动后运行的程序等。

put my local web siteq in myApp folder to /var/www

expose httpd port

the command to run

利用新创建的镜像来启动一个容器

sudo docker run -t -i ouruser/sinatra:v2 /bin/bash
exit(退出)

还可以用docker tag 命令来修改镜像的标签

docker images
sudo docker tag 2c5e00d77 ubuntu:666
sudo docker images

从本地文件系统导入

先下载后导入

wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz
sudo cat ubuntu-14.04-x86_64-minimal.tar.gz  |docker import-ubuntu:14.04

查看新导入的镜像

docker images

上传镜像

用户可以通过docker push 命令,把自己创建的镜像上传到仓库中来共享。

sudo docker push ouruser/sinatra

存出和载入镜像
存出镜像(备份)

导出镜像到本地文件可以使用docker save 命令

sudo docker images
sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
docker rmi ubuntu:14.04
docker images

载入镜像(还原)

sudo docker load --input ubuntu_14.04.tar

sudo docker load < ubuntu_14.04.tar

移除

docker rmi(移出本地镜像)
docker rm(移出容器)
sudo docker rmi ubuntu

你可能感兴趣的:(Docker实践)