docker 部署
来源:互联网 发布:白自在和谢烟客知乎 编辑:程序博客网 时间:2024/04/29 10:37
docker 部署
@(技术文档)[docker, linux, 环境配置, 项目部署]
一、在CentOS7上安装Docker篇
查看系统版本:
$ 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
3.检查安装是否成功 $docker version
若输出了 Docker 的版本号,说明安装成功了,可通过以下命令启动 Docker 服务:
4. $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环境,并且安装了wget命令在里面。它可以在任何支持docker环境的系统中运行啦!(是不是很神奇呢?)让我们来体验一下吧!
在新的镜像中运行wget “http://blog.csdn.net/yown” 命令。 $docker run learn/wget wget “http://blog.csdn.net/yown”
成功啦! $ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2e079c9ecac4 learn/wget “wget http://blog.csd” About a minute ago Exited (8) About a minute ago elegant_lumiere
检查运行中的镜像 $docker inspect 2e079c9ecac4
发布自己的镜像
a. 首先在www.docker.com注册账户,登录并在https://cloud.docker.com/repository/list 页面创建learn库
b. 将刚才我们做的镜像起个新的名字: $docker tag learn/wget:latest yown/learn:latest
c. 在命令行登录: $docker login
d. 上传 $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 命令
service docker start
chkconfig docker on
设置开机启动systemctl start docker.service
采用centos7 的systemd 启动服务systemctl enable docker.service
设置开机启动docker pull centos
拉取镜像 从官网下载 centosdocker images centos
查看centos镜像docker images
查看镜像docker run -i -t centos /bin/bash
运行centos镜像容器 并得到bash提示符 -i 捕获标准输入输出 -t 分配一个终端或控制台。 断开与容器连接 输入 exit。docker search ubuntu
搜索镜像docker login
登录docker hubdocker push mhuihui/learn:latest
向docker hub推镜像
对image操作
docker images
# 列出镜像列表; -a, –all=false Show all images; –no-trunc=false Don’t truncate output; -q, –quiet=false Only show numeric IDsdocker rmi image_name
# 删除一个或者多个镜像; -f, –force=false Force; –no-prune=false Do not delete untagged parents, 删除image需先删除所有关联容器docker history image_name
# 显示一个镜像的历史; –no-trunc=false Don’t truncate output; -q, –quiet=false Only show numeric IDs
对容器操作
docker start name/ID
启动 容器 name/ID 容器名称 或 IDdocker stop name/ID
停止容器docker kill name/ID
快速停止容器docker restart name/ID
重启容器docker ps
查看正在运行容器docker ps -l
查看最后一次运行容器docker ps -a
查看所有容器docker rm name/ID
删除指定容器- docker rm
docker ps -a -q
删除所有容器
容器管理
docker run --name 容器名 -d learn/c /bin/bash -c "while true; do echo hello world; sleep 1; done"
创建守护式容器 使用while 循环 打印 hello world 。 只会返回容器ID 。 -d 指定守护进程 -i 捕获标准输入输出 -t 分配一个终端或控制台
-注:任务执行完 会推出docker logs -f name/ID
查看容器日志 -f 参数来健康Docker日志, 类似 tail -fdocker attache name/ID
重新附到该容器的会话上 但是它有一个缺点,只要这个连接终止,或者使用了exit命令,容器就会退出后台运行docker exec -it name/ID /bin/bash
这个命令使用exit 不会退出后台, 一般使用这个命令docker top name/ID
查看容器内的进程docker diff name/ID
列出一个容器里面被改变的文件或目录, list列表会显示三种事件 , A 增加的 , D 删除的, C 被改变的docker cp name/ID:/container_path to_path
从容器中拷贝文件、目录 到本地
Dockerfile
docker build -t image_name Dockerfile_path
根据Dockerfile构建一个容器,
参数:build
–no-cache=false Do not use cache when building the image
-q, –quiet=false Suppress the verbose output generated by the containers
–rm=true Remove intermediate containers after a successful build
-t, –tag=”” Repository name (and optionally a tag) to be applied to the resulting image in case of success
- docker部署
- docker 部署
- Docker部署
- Docker部署
- docker 部署
- Docker自动部署tomcat
- 使用Docker部署Gitlab
- docker-gitlab部署
- CentOS7.0部署Docker
- 基于Docker部署codis
- docker部署php环境
- docker部署tomcat8
- docker安装部署
- Docker私有仓库部署
- docker环境部署
- 使用Docker部署GitLab
- Docker部署私有仓库
- Docker快速安装部署
- 第一篇 Web开发
- window.print() 去掉页眉页脚及打印链接
- 简单工厂模式
- 使用MyBatis进行批量的更新、删除报错
- 分布式锁的基本原理
- docker 部署
- centos6.5关闭selinux、iptables、ipv6
- android studio Error:(1, 1) 错误: 非法字符: '\ufeff' 解决方案
- 汇编命令
- 解决[UIColor colorWithRed: green: blue: alpha:] 没有效果的问题
- 自动部署脚本 Linux shell
- 【Unity】遇到的莫名其妙的问题以及其解决办法
- 模拟CF换枪(封装继承多态)
- CIH原码