工作中Docker使用命令笔记
docker安装与启动
安装docker
[root@localhost /]# yum -y install docker-io
更改配置文件
[root@localhost /]# vi /etc/sysconfig/docker
other-args列更改为:other_args="--exec-driver=lxc --selinux-enabled"
启动docker服务
[root@localhost /]# service docker start
重启docker
service docker restart
Starting cgconfig service: [ OK ]
Starting docker: [ OK ]
将docker加入开机启动
[root@localhost /]# chkconfig docker on
基本信息查看
docker version:查看docker的版本号,包括客户端、服务端、依赖的Go等
[root@localhost /]# docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0
1、进入容器命令:
sudo docker exec -ti 64134af51c2b /bin/sh
其中64134af51c2b表示要进入的容器名称
2、退出容器:exit
3、查看日志文件:tail -f xxx.log
ssh ubuntu@172.16.200.59
启动docker :service docker start
docker下载的镜像存放地址:一般都是在/var/lib/docker/devicemapper/mnt目录下
docker镜像文件的导出导入:
可联网的虚拟机中先获取registry镜像,然后导出tar格式的镜像文件。
docker save registry > /tmp/registry.tar
在目标虚拟机中导入tar格式的镜像文件。
docker load <registry.tar
然后通过docker images 命令即可查看导进来的镜像文件了。
启动容器:docker run IMAGE ID
通过docker ps -a 查看所有正在运行的容器
sudo docker run -i -t ubuntu /bin/bash
这条命令的含义:
首先,我们告诉 Docker 执行 docker run 这条命令,并且带上 -i -t 这两个参数。
-i 标志保证容器中 STDIN 是开启的,虽然并没有附着在容器中;
-t 标志要为新创建的容器分配一个伪 tty 终端,这样我们就能在新创建容器中使用 交互式 shell ;
接下来,我们告诉 Docker 基于什么镜像来创建容器,实例中使用的是 ubuntu 镜像。
随后, Docker 在文件系统内部用这个镜像创建了一个容器,该容器有着自己的网络、IP地址以及和宿主主机用来通信的桥接网络接口。
最后,在新创建的容器中运行 /bin/bash 命令启动了一个 Bash shell.
这样,容器创建完毕后,我们就可以看到容器中启动了shell .
docker 移除一个容器;
第一步:先停止该容器:docker stop 79072778a521
第二步:移除该容器: docker rm 79072778a521
进入容器的方法:1、attach ;3、exec
首先不管采用那种方式,必须先起一个容器:创建一个守护态的Docker容器
sudo docker run -itd ubuntu:14.04 /bin/bash
使用docker ps -a 命令查看容器的id 44fc0f0582d9
1、attach方法:
sudo docker attach 44fc0f0582d9
然后从[root@localhost /]变成了[root@44fc0f0582d9 /],这就说明进入了44fc0f0582d9容器
进入容器后,输入ls命令,列出所有的文件夹,跟我们常用的系统一模一样:
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
退出容器exit,这样又变成了[root@localhost /]
2、使用exec:
sudo docker exec -it 44fc0f0582d9 /bin/bash
如果进入容器报错说容器没有启动,需要先启动,可以使用docker restart 44fc0f0582d9命令将44fc0f0582d9容器重启下,然后再使用进入容器命令。
//////////////////////////////////////////////////////////////////////////
基于ubuntu基础镜像创建一个nginx镜像
1、首先进入ubuntu容器中,然后在该容器中创建一个nginx目录
ubuntu@ubuntu:~$ mkdir nginx #创建nginx目录
ubuntu@ubuntu:~$ cd nginx #进入目录
ubuntu@ubuntu:~/nginx$ touch Dockerfile 执行Dockerfile文件
Dockerfile文件:
FROM ubuntu:14.04
MAINTAINER Reed "reed@example.com"
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html
ADD global.conf /etc/nginx/conf.d/
ADD nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
对上面Dockerfile文件做一个解释:
FROM 指定基础镜像,我们制做的镜像是在Ubuntu:14.04的基础上生成的。
MAINTAINER 镜像制作人的信息
RUN 指定创建镜像时执行的命令
ADD 将本地文件添加到镜像中
EXPOSE 容器开放80端口
docker容器迁移:
docker exoprt 容器id >ubuntu_wrong.tar #ubuntu_wrong.tar 是你自己给容器起的一个英文名字,方便识别
du -sh ubuntu_wrong.tar
默认是把ubuntu_wrong.tar拷贝到root根目录下下的;
然后将该ubuntu_wrong.tar再拷贝到要迁移的服务器上。
然后通过下面的命令:
cat ubuntu_wrong.tar |sudo docker import - wr:latest
其中wr是自己起的一个名字。latest表示最新,也可以指定一个版本。
docker镜像迁移迁入:
导出镜像文件:
sudo docker save -o wrong-mysql.tar 114.113.1.101:6666/admin/commsrvmongodb:v3.4.82f5fd7
其中114.113.1.101:6666/admin/commsrvmongodb是镜像的名称
v3.4.82f5fd7是镜像的版本
wrong-mysql.tar是迁移出来的名称,到当前路径下。
导入镜像文件:
sudo docker load -i wrong-mysql.tar
必须在wrong-mysql.tar路径下面操作
修改docker 的配置文件:cat /etc/sysconfig/docker
将docker设为开机启动:chkconfig docker on
宿主机和容器的文件相互复制
1、从docker中拷贝数据到宿主机:
首先在宿主机上通过sudo docker ps | grep demo
查出demo的容器id:b2764cd71857
然后在宿主机上执行下面命令:
docker cp containerId:/file/path/within/container /host/path/target
例如:
sudo docker cp b2764cd71857:/home/logs/rm-service/log/zip /home
2、从宿主机拷贝数据到docker中;
sudo docker cp /home/ubuntu/wr/pm-adaptor.jar f3a2a81eb929:/home/zenap/pm-adaptor/pm-adaptor.jar
工作中Docker使用命令笔记的更多相关文章
- 工作中常用Linux命令--服务器运维
工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...
- 工作中常用Lixu命令学习笔记
对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...
- 【mysql】工作中mysql常用命令及语句
1.查看mysql版本号 MySQL [release_test_oa]> select version(); +------------+ | version() | +----------- ...
- 工作中git常用命令
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 16.0px; font: 14.0px "PingFang SC" } ...
- git总结一、工作中常用基础命令
首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...
- Git 日常工作中使用的命令记录
前言 这篇文章主要是介绍我在使用Git中的有一些忘记了,但是很重要的命令. 20190424 Git 历史信息 username 和 email 更改 git config alias.chang ...
- 工作中Linux常用命令
rpm -qa|grep -i mysql rpm -ev mysql-server-5.1.73-5.el6_6.x86_64 如果报: error: Failed dependencies: li ...
- Docker镜像命令笔记
docker安装 官方Ubuntu安装文档 获取 docker pull NAME[:TAG] docker pull registry.docker-cn.com/library/ubuntu:14 ...
- 工作中常用Linux命令
建立软链接 ln -s 例:ln -s b a 解释:把文件夹a和文件夹b关联起来,访问文件夹a,实际访问的是问价夹b 删除软连接 rm -rf a 直接删掉a文件夹跟a和b的软连接. ...
随机推荐
- 修改fuse库成功
使用的是fuse-2.9.2 在lib目录下的helper.c的fuse_main_real函数里打印一句话,然后将fuse库编译并install. 对ssfs进行编译,运行后,出现了打印的那句话! ...
- UVA-10125(中途相遇法)
题意: 给定一个整数集合,找出最大的d,使得a+b+c=d,a,b,c,d是集合中不同的元素; 思路: 如果单纯的枚举a,b,c的复杂度是O(n^3)的,为了降低复杂度,可以先把a+b的情形都找出来, ...
- 一个点亮屏幕的service
这个版本是只能点亮不能解锁的版本(注意很多句子都被注释掉了,那部分是用来实现解锁屏幕的),达到了预期的效果,特此纪念. 把代码贴出来: package com.larry.msglighter; im ...
- I.MX6 MAC地址修改
/*********************************************************************** * I.MX6 MAC地址修改 * 说明: * I.M ...
- 「LuoguP4753」濑 River Jumping(贪心
Description 有一条宽度为 N 的河上,小D位于坐标为 0 的河岸上,他想到达坐标为 N 的河岸上后再回到坐标为 0 的位置.在到达坐标为 N 的河岸之前小D只能向坐标更大的位置跳跃,在到达 ...
- 如何下载WDK
随着Windows Vista和Windows Server 2008的相继发布,微软的驱动开发工具也进行了相应的更新换代.原来的驱动开发工具包叫做DDK(Driver Develpment Kit) ...
- Hadoop 三大调度器源码分析及编写自己的调度器
如要转载,请注上作者和出处. 由于能力有限,如有错误,请大家指正. 须知: 我们下载的是hadoop-2.7.3-src 源码. 这个版本默认调度器是Capacity调度器. 在2.0.2-alph ...
- ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(六)学生借阅/预约/查询书籍事务
前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/asp ...
- 关于TImer使用的注意
晚点再写 停止Timer let timer = .... timer.invalidate()
- VS代码中常用 正则表达式
1. #define ABC 1 修改为 enum 样式: #define (.+?)\s+(.+?)$ $1 = $2 ,