Docker实操

docker 实操

docker启动和使用

运行镜像和启动容器

#从镜像启动
docker run -d (后台运行) -p 端口 -v 挂载路径 -e 配置 --name 生成的容器名字 镜像名字
#容器启动
方式一: 进入容器后开启一个新的终端,可在里面进行操作(常用)
docker exec -it 容器id /bin/bash
方式二: 进入容器正在执行的终端,不会启动新的进程
docker attach 容器ID
#查看镜像元数据
docker inspect 容器ID
#容器之间实现数据共享
docker run -it --name docker02(新容器) --volumes-from(命令) docker01(数据共享的旧容器,已经运行) centos:1.0(镜像名字)

Mysql

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

Nginx

docker run -d --name nginx01 -p 3344:80 nginx
#进入容器
docker exec -it nginx01 /bin/bash

Tomcat

docker run -d -p 3355:8080 --name tomcat01 tomcat

从容器内拷贝文件到主机

docker cp 容器id:容器内路径 目的主机路径

docker镜像

使用容器制作镜像

docker commit -m=“提交的描述信息” -a=“作者” 容器id 目标镜像名:[TAG]
docker commit -a “zsr” -m=“copy files from webapps.dist to webapps” 7c548ecd440f tomcat_zsr:1.0

Dockerfile

创建一个dockerfile文件

#centos镜像制作
FROM centos
VOLUME [“volume01”,“volume02”]
CMD echo “----end----”
CMD /bin/bash
#Tomcat 镜像制作
FROM centos
MAINTAINER [email protected]
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u281-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.41.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk
ENV CALSSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.41
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.41
ENV PATH P A T H : PATH: PATH:JAVA_HOME/bin: C A T A L I N A H O M E / l i b : CATALINA_HOME/lib: CATALINAHOME/lib:CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.41/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.41/bin/logs/catalina.out

构建镜像命令

docker build -f ./dockerfile1(dockerfile文件路径) -t zsr/centos:1.0(镜像名字)

docker网络

ping

#容器内部可以互相ping通(通过ip)
docker exec -it tomcat02 ping 172.18.0.2
#通过容器名字连接(不行)
docker exec -it tomcat01 ping tomcat02

如何通过容器名字来ping通? 通过 --link命令来实现

docker run -d -P --name tomcat03 --link tomcat01 tomcat
这条命令单向实现 tomcat03 连接 tomcat01 (单向!)

你可能感兴趣的:(docker,容器,运维)