群晖NAS上带有docker套件,对于深度定制Linux的DSM来说有了一个高可玩性的迂回方法:
查找镜像 docker search XXX
拉取镜像 docker pull XXX
从Dockerfile Build docker build -t XXX .
查看镜像 docker images
命名镜像 docker tag XXX XXX
运行镜像生成容器
docker run -it(-d) -p 10080:80 -p 10022:22 XXX /root/run.sh
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
运行镜像,-it前端运行并交互,-d后台运行,-p端口映射 执行run.sh 注意run.sh需要赋予777权限。当初想在运行docker的时候自启动一些软件比如Nginx,但是在rc.local中添加并没有用,不知道怎么回事,所以写了启动脚本
启动已有容器 docker start XXX
(docker ps -a 出来的容器ID前3位即可)
停止运行容器 docker stop/kill XXX
进入已运行的容器 docker attach XXX
退出容器 exit
查看容器 docker ps -a
提交容器到镜像 docker commit CONTAINER_ID IMAGE_NAME
删除容器 docker rm XXX
解决时间不同步问题
一、安装
查看系统版本:
$ cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
安装docker
$ yum install docker
安装过程中报错:
Transaction check error: file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7_2.2.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
解决办法: $yum install libdevmapper* -y
再次运行: $yum install docker
检查安装是否成功
$docker version
若输出了 Docker 的版本号,说明安装成功了,可通过以下命令启动 Docker 服务:
- $service docker start
一旦 Docker 服务启动完毕,就可以开始使用 Docker 了。
二、使用docker
使用命令行的工具来检索名字为“tutorial”的镜像$docker search tutorial
使用docker命令来下载镜像 $docker pull learn/tutorial
查看已下载的镜像 $ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/learn/tutorial latest 2d13ac7ee948 3 years ago 128 MB
在docker容器中运行hello world!docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。 $docker run learn/tutorial echo “hello word”
在容器中安装新的程序(wget命令) $docker run learn/tutorial apt-get install -y wget
使用docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/wget。
$ docker ps -l
Container ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1861c071d861 learn/tutorial “apt-get install -y w” 2 minutes ago Exited (0) 2 minutes ago furious_panini
保存对容器的修改 $ docker commit 1861c071d861 learn/wget
ad2245a8acd8014c39ad46b503cc8e74ce4202d9b4b4fdf48596b596b88059b4
执行完docker commit命令之后,返回新版本镜像的id号
运行新的镜像
检查运行中的镜像 $docker inspect 2e079c9ecac4
发布自己的镜像
- 首先在www.docker.com注册账户,登录并在https://cloud.docker.com/repository/list 页面创建learn库
- 将刚才我们做的镜像起个新的名字:
$docker tag learn/wget:latest yown/learn:latest
- 在命令行登录:
$docker login
- 上传
$docker push yown/learn:latest
Do you really want to push to public registry? [y/n]: y The push refers to a repository [docker.io/yown/learn] (len: 1) ad2245a8acd8: Pushing [=========================> ] 6.482 MB/12.48 MB
至此,整个docker的使用已体验完啦!
CentOS7 安装Docker CE
官方网站:https://docs.docker.com/engine/installation/linux/docker-ce/centos/
卸载老版本Docker
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
设置仓库
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
—add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker
$ sudo yum install docker-ce
启动Docker
$ sudo systemctl start docker
卸载Docker CE
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker