1.查看版本:
docker version
2.镜像:
docker pull centos:6.7 拉取镜像
docker search centos 搜索名称包含centos的镜像
docker images 查看所有镜像
docker stats 显示容器消耗系统资源情况
docker rmi myCentos 删除镜像
docker rmi ${docker image -aq}
docker run it imageId /bin/bash
exit 退出 退出后容器不再运行
ctrl + p + q 仅仅退出
3.运行:
docker run -itd -p 8080:80 --name myCentos centos:6.7 /bin/bash
在镜像里面退出 exit
4.查看所有容器状态:
docker ps -a 查看所有容器
docker ps 查看所有运行中的容器
5.启动/关闭一个容器:
docker start/stop myCentos
docker rm myCentos 必须关闭状态下 删除容器
docker rm -f myCentos 强制关闭
docker restart myCentos 重新启动
docker container prune 清除所有关闭状态的容器
docker run -d imageId
6.进入容器:
docker attach myCentos (退出时候,会关闭容器)
docker exec -it myCentos /bin/bash
7.导出和导入容器:
docker export myCentos > myCentos.rar
cat myCentos.rar | docker import - [xiayu.com/centos:sunliqian](http://xiayu.com/centos:sunliqian)
8.端口查看方式:
docker port myCentos
docker logs查看容器日志
9.查看容器内的进程:
docker top myCentos
10.查看容器底层信息:
docker inspect myCentos
11.查看最后一次创建的容器:
docker ps -l
12.安装docker
yum search docker
uname -r 内核版本大于3.10
修改yum源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -o [http://mirrors.163.com/.help/CentOS7-Base-163.repo](http://mirrors.163.com/.help/CentOS7-Base-163.repo)
yum makecache
yum -y update
yum install docker
13.创建镜像:
a.通过更新容器,让后commit成一个新的镜像
b.通过Dockerfile文件来创建镜像
docker exec -it myUbuntu:sunliqian /bin/bash
apt-get update
docker commit -m "description" -a "sunliqian" myUbuntu [xiayu.com/ubuntu:v2](http://xiayu.com/ubuntu:v2)
编写Dockerfile文件 ,指令前缀大写
FROM centos:6.7
MAINTAINER FISHER "sunliqian.@Sudops.com"
RUN /bin/echo "root:123456" | chpasswd
RUN useradd runoob
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
然后执行 docker build -t [xiayu.com/centos:sunliqian](http://xiayu.com/centos:sunliqian) /docker/images/ (/docker/images代表Dockerfile的路径)
14.设置镜像标签
docker tag 417c06850bd0 [xiayu.com/ubuntu:sunliqian2](http://xiayu.com/ubuntu:sunliqian2) 为一个镜像设置一个新标签
15.端口映射:
-P 容器内部端口随机映射到主机的端口 (P大写)
-p 容器端口与主机端口进行绑定
-p 5001:5000 5001代表宿主机的端口
docker port myTrainingWebapp 5000
16.创建一个新的网络
docker network create -d bridge test-network
bridge代表网络类型
网络类型有bridge、overlay
overlay用于swarm mode中
17.docker信息
docker info
docker command --help
docker cp 3533429dw:/home/a.txt a.txt 从容器中拷贝a.txt文件到宿主机
18.日志
docker logs
19.docker安装Nginx
docker search nginx
docker pull nginx
docker run -d -p 8888:80 --name myNginx nginx
docker exec -it myNginx /bin/bash
21.docker安装Tomcat
docker search tomcat
docker pull tomcat
docker run -d -p 8880:8080 --name myTomcat tomcat
修改webapps.dist为webapps即可
23.安装portainer,portainer是docker的web管理工具
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
24.docker数据卷
使用-v进行映射
docker run -it -v /home/centos:/home --privileged=true --name myCentos centos /bin/bash
-v volumes_name:/home:ro 具名挂载(推荐使用)
-v /home/centos:/home:rw 匿名挂载
docker volume ls
docker volume inspect volumes_name
ro: readonly
re: readwrite
25.dockerfile
文件名Dockerfile
内容
---------------------
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "========end========="
CMD /bin/bash
#注释
---------------------
dockerfile中常见的命令
---------------------
FROM #基于什么创建的镜像
MAINTAINER #编写者
RUN #构建镜像执行的命令
ADD #步骤,添加内容
WORKDIR #工作目录
VOLUMES #挂载目录
EXPOSE #暴露端口配置
CMD #指定容器运行时候,运行的命令,只有最后一个会生效,如果在运行中指定命令,会替换CMD中的命令
ENTRYPOINT #指定容器启动时候运行的命令,与CMD不同的是,如果在运行中指定命令,会追加命令
ONBUILD #当构建一个被继承的dockerfile时候,会触发该命令
COPY #复制,将文件拷贝到镜像中
ENV #构建时候的环境变量
---------------------
docker build -f Dockerfile -t xiayu.com/centos:1.0 .
dockerfile用来构建镜像
docker build
docker run
docker publish
Dockerfile demo
FROM centos:latest #基础镜像
MAINTAINER sunliqian@163.com #维护者信息
COPY readme.txt /usr/local/readme.txt #readme信息
ADD apache-tomcat-9.0.35.tar.gz /usr/local #tomcat安装包 add自动解压
ADD jdk1.8.0_131.tar.gz /usr/local #jdk安装包 自动解压
RUN yum -y install vim #在构建镜像时候,安装vim
ENV MYPATH /usr/local #定义shell环境变量
WORKDIR $MYPATH #指定工作目录
#定义环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080 #暴露端口
CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh #当容器启动的时候,执行命令
构建镜像
docker build -f Dockerfile-centos-jdk-tomcat -t xiayu.com/jdktomcatcentos:1.0 .
创建容器
docker run -it -p 8988:8080 --name myJdkTomcatCentos xiayu.com/jdktomcatcentos:1.0 /bin/bash
26.数据卷容器,多个容器可以实现数据卷共享
volumes-from
docker run -it --name mySelfCentos02 --volumes-from mySelfCentos xiayu.com/centos:1.0 /bin/bash
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。