docker常用命令

Docker的启动和停止

启动docker

systemctl start docker

停止docker

systemctl stop docker

重启docker

systemctl restart docker

查看docker的状态

systemctl status docker

开机自启动

systemctl enable docker

查看docker的概要

docker info

创建与启动容器

创建容器的命令docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-P: 随机端口映射,容器内部端口随机映射到主机的高端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 设置环境变量;

--env-file=[]: 从指定文件读入环境变量;

--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

-m :设置容器使用内存最大值;

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口;

--volume , -v: 绑定一个卷

1.交互式方式创建容器

docker run -it --name=容器名称  镜像名称:标签 /biin/bash

打开一个容器内部的shell窗口,这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态

而且当前页面为容器内部

退出当前容器

exit

2.守护式创建容器

docker run  -di --name=容器名称 镜像名称:标签

登录守护式容器的方式

docker exec -it 容器名称(或者容器ID)  /bin/bash

Docker 重启

systemctl restart docker.service

docker image ls  查看镜像

在docker-compose.yaml当前目录执行命令

docker-compose up 启动会自动下载里面配置的相关镜像,并启动

关闭docker-compose down

查看容器

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次运行的容器

docker ps -l

查看停止的容器

docker ps -f status-exited

启动容器

docker start 容器名称(或者容器的id)

文件拷贝

docker cp 需要拷贝的文件或者目录 容器名称:容器的目录

也可以将文件从容器中拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或者目录

目录挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器.

创建容器 添加-v参数后边为 宿主机目录:容器目录,例如,

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级目录,可能会出现权限不足的情况.

这是因为centos7中的安全模块selinux把权限禁掉了,我们需要添加--privileges=true 来解决挂载的目录没有权限的问题

查看容器的iP地址

我们可以通过以下命令查看容器的各种数据

docker inspect 容器名称(容器Id)

也可以直接执行下面的命令直接输出ip地址

docker inspect --format=’{{.NetworkSettingss.IPAddress}}’ 容器名称(容器id)

mysql部署

拉取镜像

docker pull centos/mysql-57-centos7

创建容器

docker run -di --name=test_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7

进入容器

docker exec -it test_mysql /bin/bash

登录mysql

mysql -u root -p

tomcat部署

docker pull tomcat

拉取nginx的镜像

docker pull nginx

创建容器

docker run -di --name=test_nginx -p 80:80 nginx

拉取redis镜像

docker pull redis

创建容器

docker run -di --name=test_redis -p6379;6379 redis

镜像的备份与迁移 

容器保存为镜像

docker commit test_nginx test_nginx2

我们可以将镜像保存为tar文件

docker save -o test_nginx.tar test_nginx2

镜像恢复与迁移

docker load -i test_nginx.tar

docker 私有仓库的搭建与配置

拉取私有仓库的镜像

docker pull registry

启动私有仓库的镜像

docker run -di --name=test_registry -p 5001:5000 registry

浏览器访问地址********:5001/v2/_catalog 看到如下表示私有仓库搭建成功并且内容为空

{"repositories":[]}

修改daemon.json文件添加

{"insecure-registries": ["10.68.15.115:5001"]}

Dockerfile创建jdk1.8的镜像

当前目录创建Dockerfile文件,并拷贝jdk-8u131-linux-x64.tar.gz压缩包到当前目录

FROM centos:7
MAINTAINER unimas
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u131-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME /usr/local/java/jdk1.8.0_131
ENV JRE_HOME $JAVA_HOME/jre
ENV CALSSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 

运行命令创建镜像

docker build -t='jdk1.8' .

-t指定镜像名称   .点是指当前目录

标记镜像

docker tag jdk1.8 10.68.15.115:5001/jdk1.8

上传镜像

docker push 10.68.15.115:5001/jdk1.8

在另外一台有docker的服务器测试

修改daemon.json文件添加

{"insecure-registries": ["10.68.15.115:5001"]}

重新启动

systemctl restart docker.service

拉取镜像

docker push 10.68.15.115:5001/jdk1.8

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值