本文共 4127 字,大约阅读时间需要 13 分钟。
公司拆分业务要搞微服务结构,推荐使用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.1.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.1.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.1.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
google后解决:
yum install libdevmapper* -y 然后: yum install Docker安装完后:
service docker startDocker 启动失败
Starting docker (via systemctl): Job for docker.service failed
再安装:
yum install device-mapper-devel终于成功了:
[root@VM_177_92_centos /]# service docker startRedirecting to /bin/systemctl start docker.service
接下来搞个镜像
搜索镜像: docker search centos[root@VM_177_92_centos ~]# docker search centosINDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATEDdocker.io docker.io/centos The official build of CentOS. 2290 [OK]docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 23 [OK]docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 17 [OK]docker.io docker.io/million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 11 [OK]docker.io docker.io/nimmis/java-centos This is docker images of CentOS 7 with dif... 11 [OK]docker.io docker.io/consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 8 [OK]
下载:
docker pull docker.io/centos
查看下载的镜像:
[root@VM_177_92_centos ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEdocker.io/centos latest db0f5936b391 11 days ago 196.7 MB
在镜像的基础上建立一个容器:
[root@VM_177_92_centos /]# docker run docker.io/centos echo "hello word"hello word
查看所有容器:
docker ps -a保存对容器的修改:
[root@VM_177_92_centos /]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES913fc407e73e docker.io/centos "echo 'hello word'" 3 seconds ago Exited (0) 2 seconds ago sick_franklin[root@VM_177_92_centos /]# docker commit 913fc407e73e echo/hellocf5907ef4d688e7a50428274b2678bad94b016a9c6ee14ff7f198c3e65ba52d4
首先 用docker ps -a 查看CONTAINER ID 然后使用,docker commit commit_id image_name 来创建一个新的镜像。
使用docker images 是不是发现多了一个echo/hello的镜像呢?
发布自己的镜像:
先登录; 没有账号的先注册() 命令行:docker login -e me@example.com -u someuser -p somepass WARNING: login credentials saved in /root/.docker/config.json Login Succeeded或者 vim ~/.docker/config.json (自行百度修改填入)
如何进入容器?
创建一个容器,并进入(ssh 方式) -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。
docker run -it docker.io/centos bash 退出 exit守护态运行(-d)
docker run -i -t -d docker.io/centos
要获取容器的输出信息,可以通过 docker logs 命令。
$ sudo docker logs [container ID or NAMES]进入容器(docker attach)
docker attach container ID终止容器
可以使用 docker stop 来终止一个运行中的容器。
此外,当Docker容器中指定的应用终结时,容器也自动终止。 例如对于上一章节中只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 终止状态的容器可以用 docker ps -a 命令看到。例如sudo docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike
处于终止状态的容器,可以通过 docker start 命令来重新启动。
此外,docker restart 命令会将一个运行态的容器终止,然后再重新启动它。docker rmi 移除本地镜像
docker rm 移除容器 注意删除镜像前,要先移除docker rm 依赖于这个镜像的所有容器。参考:
docker中文 docker从入门到实践转载地址:http://dlvws.baihongyu.com/