一、创建基础镜像
测试环境所需: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推崇一个容器创建一个应用,这个实践中容器里启动了很多服务和应用,只是为了更方便测试。
网友评论