docker实践之测试环境容器创建

一、创建基础镜像

测试环境所需:centos操作系统、jdk1.7、缓存服务器aerospike

1、pull centos镜像

docker pull centos

2、通过centos镜像创建我们的容器

  • 【方式A】创建容器,通过commit创建镜像

    docker run -it centos

    创建容器,且进入容器
    ===此时,安装jdk,安装as(装你需要安装的东西,安装完成后,记得把不再需要的安装包及其他文件删掉)

    docker commit 容器id centos/jdk1.7_xxx

    新的镜像创建成果,通过docker images可查看

  • 【方式B】通过dockerfile创建

二、创建测试环境容器

1、提前规划好容器需要暴露的端口号

举例:
|-暴露端口-|-容器内部端口-|
|-1001-|9180-|

2、创建容器

docker run -d -p 暴露端口:容器内端口 --privileged=true --name 容器名称 镜像名称
注:若容器内部不需要service命令启动服务,可以不加--privileged=true参数

三、使用容器

1、查看容器信息

查看容器运行情况:docker ps -a
查看容器ip:docker inspect 容器ID |grep IPA

2、连接进入容器

【ssh】
默认密码:123456
ssh root@容器ip
或ssh root@10.100.1.125 -p 6000
【nsenter】
PID=$(docker inspect --format "{{ .State.Pid }}" [容器id])
nsenter --target $PID --mount --uts --ipc --net --pid

3、文件传输

1)先把包传到docker宿主机服务器的某个路径上,再传到容器里

scp -r 宿主机文件夹路径 root@172.17.0.31:容器文件夹路径
scp 宿主机文件路径 root@172.17.0.31:容器文件夹路径
举例:scp -r /home/soft/ root@172.17.0.31:/home/
scp /home/soft/11.txt root@172.17.0.31:/home/

2)包在别的服务器上,传到容器里

scp -P 6000 -r 文件夹路径 root@宿主机服务器:容器文件夹路径
scp -P 6000 文件路径 root@宿主机服务器:容器文件夹路径
举例:scp -P 6000 -r /home/soft/ root@10.100.1.125:/home/
scp -P 6000 /home/soft/11.txt root@10.100.1.125:/home/

4、字符替换

sed -i "s/旧/新/g" `grep '旧' -rl /home/hornetq/`

举例:
sed -i "s/172.17.0.34/172.17.0.7/g" `grep '172.17.0.34' -rl /home/hornetq/`

sed -i "s/10.100.1.150/172.17.0.15/g" `grep '10.100.1.150' -rl /home/hornetq/`

三、其他

1、后续新增端口映射:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6305 -j DNAT --to-destination 172.17.0.31:5445
iptables-save
iptables -t nat -nvL | grep 172.17.0.31

写在后面的话:docker推崇一个容器创建一个应用,这个实践中容器里启动了很多服务和应用,只是为了更方便测试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,577评论 0 120
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 5,791评论 0 7
  • 一、需求由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试...
    虾米在海飘阅读 4,498评论 0 3
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,694评论 15 147
  • Geogebra是一款用于学习和教学的数学软件,其易用性和可视化做得相当不错。Tikz是LaTeX的一个宏包,熟悉...
    Mar1once阅读 7,243评论 0 3