docker 命令 杂 集(持续更新)

安装docker

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

添加 yum 软件源

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装开始

yum install -y docker-ce

查看版本

docker -v

[root@localhost ~]# docker -v
Docker version 19.03.8, build afacb8b

镜像加速器

请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
下面的https://hub-mirror.c.163.com 可使用其他镜像加速器地址

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hub-mirror.c.163.com"]
}
EOF
镜像加速器镜像加速器地址其它
Docker 中国官方镜像https://registry.docker-cn.com
DaoCloud 镜像站http://f1361db2.m.daocloud.io需登录,系统分配
科大镜像站https://docker.mirrors.ustc.edu.cn
Azure 中国镜像https://dockerhub.azk8s.cn
阿里云https://<your_code>.mirror.aliyuncs.com需登录,系统分配
网易云https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com
七牛云https://reg-mirror.qiniu.com

重载daemon,重启docker服务

systemctl daemon-reload
systemctl restart docker

docker 服务相关命令

启动docker服务

systemctl start docker

关闭docker服务

systemctl stop docker

重启docker 服务

systemctl restart docker

查看docker服务状态

systemctl status docker

docker 镜像相关命令

查看本地所有的镜像

[root@localhost ~]#  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              927899a31456        3 days ago          647MB
mysql               5.7                 5d9483f9a7b2        4 days ago          455MB
mysql               latest              0c27e8e5fcfa        4 days ago          546MB
tomcat              8.5.16              b226d7ee3462        2 years ago         292MB

查看镜像的id

[root@localhost ~]#  docker images -q
927899a31456
5d9483f9a7b2
0c27e8e5fcfa
b226d7ee3462

查找镜像

docker search 镜像名

拉取镜像

docker pull 镜像名

删除镜像

docker rmi 镜像名

docker 容器相关命令

查看正在运行的docker容器

docker ps

查看所有的docker容器

docker ps -a

docker run 参数

-it(交互式容器)
容器创建后自动进入容器,退出自动关闭容器

-id(守护式容器)
创建容器需使用docker exec进入容器,容器在后台运行,退出后不会关闭容器

docker run -it --name 容器名 centos:7 /bin/bash

docker run -id name=容器名 centos:7

#注:'空格'和'='效果是一样的

#在交互式容器中,退出容器且保留后台
ctrl + p + q

#退出容器后自动删除容器,用于测试
docker run -it --name test --rm 镜像id /bin/bash

#端口映射,访问本地8080端口即容器nignx的80端口
docker run -id -p 8080:80 --name test nginx:1.14 /bin/bash

进入容器

docker attach 容器名
docker exec -it 容器名 /bin/bash

关闭容器

docker stop 容器名
docker kill 容器名

启动容器

docker start 容器名

删除容器 (正在运行的容器不可删除)

docker rm 容器名

查看容器信息

docker inspect 容器名

docker容器数据卷

数据卷:宿主机上的一个目录或文件

  1. docker 容器删除后,在容器产生的数据还在吗?
    不在
  2. docker 可以和外部机器直接交换数据吗?
    不能
  3. docker 容器之间能进行数据交互吗?
    不能

但可以通过挂载 宿主机目录和容器内目录 来实现这些功能

数据卷作用

  1. 容器数据持久化
  2. 外部机器和容器间通信
  3. 容器之间数据交换
 docker run -it --name=容器名 -v 宿主机目录:容器内目录 centos:7 /bin/bash

注:
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷

多容器进行数据交换
多个容器挂载同一个数据卷

# 数据卷容器
# 容器2、3挂载在容器1的数据卷
 docker run -it --name=容器名1 -v /volumes centos:7 /bin/bash        # /volumes 是数据卷名可修改
 docker run -it --name=容器名2 --volumes-from 容器名1 centos:7 /bin/bash
 docker run -it --name=容器名3 --volumes-from 容器名1 centos:7 /bin/bash

docker应用部署-部署mysql

需求
在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server。
搜索mysql镜像

docker search mysql

拉取mysql镜像

docker pull mysql

创建容器

cd ~/mysqldocker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6

参数说明:
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

操作容器中的mysql

进入容器,操作mysql
docker exec –it c_mysql /bin/bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值