network使用
创建网桥
docker network create -d bridge mybridge
显示有所网桥
docker network ls
创建容器并且加到指定网桥
docker run --name mysql --network mybridge -p 3306:3306 -d mysql:5.7
查看网桥中包含的容器
docker inspect mybridge
手动将容器加入到网桥
# docker network connect 网桥名称 容器名称
docker network connect mybridage mysql
Docker 安装
Docker 简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows机器上。使用Docker可以更方便低打包、测试以及部署应用程序。
Docker 环境安装
- 删除旧版本Docker
yum remove docker docker-common docker-selinux dockesr-engine -y
- 升级系统软件
yum upgrade -y
- 安装yum-units
yum install -y yum-utils device-mapper-persistent-data lvm2
- 为yum源添加docker仓库位置
#阿里云仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#官方仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装并更新Docker
# 更新
yum makecache fast
# 安装
yum install docker-ce
- 启动Docker
systemctl start docker
- 查看Docker状态
systemctl statuc docker
- 停止Docker
systemctl stop docker
- 重启Docker
systemctl restart docker
- Docker 容器目录
/var/lib/docker/containers
- 开启启动Docker
方式一
systemctl enable docker
方式二:将docker.service
服务移动到系统服务中
cp /usr/lib/systemd/system/docker.service /etc/systemd/system/
systemctl daemon-reload
systemctl restart docker
镜像操作
搜索镜像
docker search java
下载镜像
# docker pull 镜像名字:tag
docker pull java:8
镜像列表(已经下载到本地的镜像列表)
docker images
删除指定镜像
docker镜像可以根据镜像ID、镜像名字:tag 删除
#docker rmi 镜像ID、镜像名字
docker rmi java:8
强制删除镜像
# docker rmi -f 镜像ID、镜像名字
docker rmi -f java:8
删除所有没有被容器引用的镜像
docker rmi `docker images | grep none | awk '{print $3}'`
强制删除所有镜像
docker rmi -f $(docker images)
打包镜像
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile文件
docker build -t tngd/tngd-admin:1.0-SNAPSHOT .
推送镜像
# 登录Docker Hub
docker login
# 给本地镜像打标签为远程仓库名称
docker tag spring/myspring-admin:1.0-SNAPSHOT springdocker/myspring-admin:1.0-SNAPSHOT
# 推送到远程仓库
docker push spring/myspring-admin:1.0-SNAPSHOT
容器操作
新建并启动容器
-d 表示后台运行
—name 容器名字
—privileged 设置权限
-v 挂载宿主机和容器目录(”:”前为宿主机目录,后为容器目录)
-e设置容器参数
docker run -p 3306:3306 --name mysql \
--privileged=true \
--network host \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d docker.io/mysql:5.7
容器和宿主机文件拷贝
将容器中的文件拷贝到宿主机
docker cp [容器名字]:[容器中文件路径] [宿主机路径]
docker cp redis:/etc/redis/redis.conf /etc/redis/
宿主机文件拷贝到容器
docker cp [宿主机文件路径] [容器名字]:[容器路径]
docker cp /etc/redis/redis.conf redis:/etc/redis/
进入容器
- 查询出容器的
pid
docker inspect --format "{{.State.Pid}}" $ContainerName
- 根据容器的pid进入容器
nsenter --target "$Pid" --mount --uts --ipc --net --pid
删除容器
- 删除指定容器
docker rm $ContainerName
- 按通配符删除容器,比如删除以
my-
开头的容器
docker rm 'docker ps -a | grep my-* | awk '${print $1}''
- 强制删除所有容器
docker rm -f $(docker ps -a -q)
修改容器启动方式
restart 参数有none、always
docker container update --restart=always
辅助功能
调整容器位置
- 查看Docker镜像存放位置
docker info | grep 'Docker Root Dir'
- 关闭Docker服务
systemctl stop docker
- 将原镜像目录移动到目标目录
mv [原目录] [目标目录]
mv /var/lib/docker /docker/data
- 建立软连接
ln -s [目标目录] [原目录]
ln -s /docker/data /var/lib/docker
Docker 容器清理
- 查看Docker占用磁盘空间情况
docker system df
- 删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
- 删除所有没有Tag的镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
- 删除所有数据卷(即无用的 volume):
docker volume rm $(docker volume ls -qf dangling=true)