docker容器操作、docker应用部署、迁移备份

docker容器操作、docker应用部署、迁移备份

1. docker容器操作

 1. 查看容器

docker ps   # 查看正在运行的容器(常用)
docker ps –a  # 查看所有容器(暂停的,停止,正在运行的。。。)(常用)

docker ps –l # 查看最后一次运行的容器
docker ps -f status=exited  # 查看停止的容器

2. 通过镜像创建并运行容器

创建容器命令:docker run -id/-it --name=容器名 -v 目录映射,可以有多个 centos:centos7

-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。容器名字不能重
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-v:表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
centos:centos7 #基于哪个镜像跑容器:如果写成centos表示跑最新的 
#基于哪个镜像跑容器(镜像名字:tag):centos:centos7   如果写成centos表示跑最新的 
#如果没有这个镜像呢?去远程拉,拉下来再跑
# 容器要运行,需要有一个前台进程(-it 需要写/bin/bash   bash开设终端,进入容器需要在终端中操作,所以必须要bash)exit退出终端
docker run -it --name=mycentos7 centos:centos7 /bin/bash
  
 # 以守护进程形式跑(一般使用这种方式)
docker run -di  --name=mycentos2_2 centos:centos7

3. 进入容器内部(必须运行的容器)

三种方式:exec(推荐使用)、attach、ssh

# exec(用的最多):在docker中执行命令
# 进入容器
docker exec -it mycentos2_2 /bin/bash
# exit 退出
# 查看容器文件夹
docker exec mycentos2_2 ls

4. 容器启动与停止

docker stop 容器id/名字
docker start 容器id/名字
docker restart 容器id/名字

5. 文件拷贝

# 从宿主机copy到容器内部
docker cp s1.exe mycentos7:/home
 # 从容器内部copy出来 ./当前路径
docker cp mycentos7:/home/s1.exe ./

6. 数据卷-v(目录映射)

docker run -di  --name=mycentos2_3 -v /root/test:/home centos:centos7
# 以后操作宿主机/root/test目录和操作容器/home目录会相互影响
# -v:数据卷,做目录映射,前者是宿主机目录,后者是容器的目录

7. 查看容器信息

docker inspect 容器名字/容器id
# 查看ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id/名字

8. 删除容器

# 停止才能删
docker rm 容器名字/id

9. 查看日志

docker logs 容器名/id

2. docker应用部署(容器端口映射)

# mysql服务 在docker中运行 -e表示环境变量有的服务需要加的,root密码
docker run -id --name=mysql1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# redis服务 在docker中运行
docker run -id --name=myredis -p 6379:6379 redis

3. 迁移备份

容器里装了python3.6, mysql,django, uwsgi ,redis 项目在里面-打包--》镜像--》容器

1. 把容器打包成镜像

# 把容器打包成镜像

docker commit 容器名字 镜像名字
docker commit mydjango mydjango_i

2. 基于该镜像再跑起容器

docker run -di --name=mydjango2 mydjango_i

3. 把本地的镜像打包成tar包压缩,拷贝到其他机器上就能跑起容器

#  save -o 打成一个tar包,压缩一下(在当前目有个mydjango.tar)
docker  save -o mydjango.tar mydjango_i

4. copy这个tar包到其他装有docker的机器上就能跑起容器所有的环境

# load -i 解压恢复镜像
docker load -i mydjango.tar

 

posted @ 2020-04-28 23:03  Mr沈  阅读(701)  评论(0编辑  收藏  举报