创建容器常用的参数说明:
创建容器命令:
docker run
-i : 表示运行容器
-t : 表示容器启动之后会进入命令行,加入这两个参数后,容器就能登录进去,即分配一个伪终端。
–name: 为创建的容器命名
例如:docker run -it --name=容器名称 镜像名称:版本(tag) /bin/bash
-v :标识目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或者文件的映射
注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d : 在run后面加上-d参数,则会创建一个守护容器在后台运行(这样创建容器后不会自动登录容器,如果只加了-i -t 两个参数,创建后会直接进入容器)
-p : 表示端口映射,格式为 宿主机映射端口:容器运行端口,前者是宿主机的端口,后者是容器的端口,可以使用多个-p 做多个端口的映射
-e : 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登录密码
例:docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
登录守护式容器方式:
docker exec -it 容器名称 (或者容器ID) /bin/bash
让docker开机启动:
systemctl enable docker
查询docker运行状态:
systemctl status docker
查看docker中所有的镜像文件:
docker images
从远程仓库搜索一个镜像:
docker search mysql
从远端拉取一个镜像:
docker pull mysql:5.7
查看正在运行的容器:
docker ps
查看所有的容器:
docker ps -a
查看最近创建的容器:
docker ps -l
根据条件过滤显示的内容
docker ps -f status=exited
后台创建启动mysql容器:
docker run -di --name=mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
登录守护者线程
docker exec -it mysql /bin/bash
查看docker容器的详细情况
docker inspect mysql57
指定IP地址返回值
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql57
docker安装redis
docker run -di --name=myredis -p 6379:6379 redis
docker安装ngnix
docker run -di --name=mynginx -p 80:80 nginx
docker安装tomcat
docker run -di --name=mytomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
docker安装jdk使用Dockerfile
创建并进入目录
cd /usr/local/dockerjdk8
创建Dockerfile文件,内容如下:
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER SHANG
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u231-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_231
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
执行命令构建镜像
docker build -t='jdk1.8' .
启动docker镜像
docker run -di --name=jdk18 jdk1.8
docker创建远程私服
docker pull registry
启动私有仓库
docker run -di --name=registry -p 5000:5000 registry
修改daemon.json
vi /etc/docker/daemon.json
添加如下内容,保存退出
{"insecure-registries":["49.234.52.245:5000"]}
重启docker服务
systemctl restart docker
标记此镜像为私有仓库的镜像
docker tag jdk1.8 49.234.52.245:5000/jdk1.8
向远程私服推送镜像
docker push 49.234.52.245:5000/jdk1.8
导入和导出容器:
如果要导出本地的某个容器,可以使用docker export命令
docker export NAME/ID > fileName.tar
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
也可以通过指定 URL 或者某个目录来导入,例如:
$ docker import http://example.com/exampleimage.tgz example/imagerepo