docker服务(centos7)
- 版本 docker -v
- 启动 systemctl start docker
- 停止 systemctl stop docker
- 重启 systemctl restart docker
- 开机启动 systemctl enable docker
- docker概要信息 docker info
- docker帮助文档 docker --help
docker镜像
镜像
镜像就像一个模板文件(一个java类文件,可以new很多实例),负责创建容器,基本不参与其他操作
操作
所有镜像 docker images
搜索 docker search 镜像名称
拉取 docker pull 镜像名称:tag
删除 docker rmi $IMAGE_ID
全部删除 docker rmi `docker images -q`
容器
查看
- 正在运行容器 docker ps
- 所有容器 docker ps –a
- 最后一次运行的容器 docker ps –l
创建
参数
- docker run ...参数
-i:表示运行容器 -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。 --name :为创建的容器命名。 -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。 -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射 -e:配置参数.
- 前台启动 docker run -it --name=$container_name centos:7 /bin/bash
- 退出 exit
- 后台启动 docker run -id --name=$container_name centos:7
- 登入到后台启动容器 docker exec -it $container_name/id /bin/bash
- 停止容器 docker stop $container_name/id
- 启动容器 docker start $container_name/id
删除
- 删除指定的容器(删除前需要先停止) docker rm $container_name/id
查看数据
- 数据 docker inspect $container_name/id
- 日志 docker logs $container_name/id
文件拷贝
- 宿主机--到->容器 docker cp 宿主机文件或目录 容器名称:容器目录
- 容器--到->宿主机 docker cp 容器名称:容器目录 宿主机文件或目录
目录映射
创建容器时候 -v 宿主机目录:容器目录 (可以多个-v -v)
- docker run -id -v /usr/local/webapps:/usr/local/tomcat/webapps --privileged=true --name=mytomcat tomcat
--privileged=true 解决 子目录 权限不足问题 : permission denied ( CentOS7中的安全模块selinux把权限禁掉了)
docker run --restart=always -e MYSQL_ROOT_PASSWORD=123456 --name mysql_dev -v /data/mysql_dev/my.cnf:/etc/mysql/my.cnf -v /data/mysql_otter/data:/usr/data/ --privileged=true -p 3411:3306 -d mysql
备份与迁移
容器保存为镜像
docker commit 容器名 镜像名
docker commit mysql_dev mymysql
镜像序列化成文件
docker save -o 输出文件名 镜像名
docker save -o mymysql.tar mymysql
-o 输出到的文件
文件导入成镜像
docker load -i 文件名
docker load -i mynginx.tar