Ubuntu安装
获取最新版本的 Docker 安装包
1
| wget -qO- https://get.docker.com/ | sh
|
当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令,然后重新登陆,否则会有报错
如果执行很慢的话,添加下面的源试试
1 2 3
| sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update
|
启动docker 后台服务
1
| sudo service docker start
|
测试运行hello-world
镜像加速, 配置Daemon
创建 /etc/docker/daemon.json 文件,添加下面的内容:
1 2 3
| { "registry-mirrors": ["http://hub-mirror.c.163.com"] }
|
Docker 使用
拉取镜像
根据镜像创建容器
下面这个命令如果没有镜像,回去仓库去获取, –name 取一个名字, -p 进行端口映射
1
| docker run --name tomcat -p 8080:8080 tomcat:latest
|
查看镜像
进入容器
1
| docker exec -it tomcat bash
|
查看正在运行的容器
部署项目到tomcat
把项目打包成war文件,假设为demo.war, 然后在war包所在的目录,执行以下命令, war包会自动解压,然后执行下面命令重启容器
1
| docker cp demo.war mytomcat:/usr/local/tomcat/webapps
|
测试tomcat容器
如果没有war包, 当然也可以先自己写一个index.html文件, 然后拷贝到容器中,
1
| docker exec -it tomcat bash
|
1
| mkdir -p /usr/local/tomcat/webapps/demo
|
1
| docker cp index.html tomcat:/usr/local/tomcat/webapps/demo
|
最后在浏览器输入:http://localhost:8080/demo ,即可访问项目
挂载目录
将主机中当前目录下的test挂载到容器的/test
1
| docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
|
DockerFile
创建自定义的tomcat镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| FROM centos MAINTAINER zhangfulin_lazy@163.com #把宿主机的文件拷贝到容器中 COPY c.txt /user/local/cincontainer.txt #拷贝java和tomcat并解压 ADD jdk-8u171-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.8.tar.gz /usr/local/ #安装vim编辑器 RUN yum -y install vim #设置工作访问时候的路径,登录落脚点 ENV MYPATH /usr/local/ WORKDIR $MYPATH #配置java和tomcat的环境变量 ENV JAVA_HOME user/local/jdk1.8.0_171 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:CATALINA_BASE/bin # 容器运行时监听端口 EXPOSE 8080 #启动运行tomcat CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
|
构建
1
| docker build -f Dockerfile tomcat9 .
|
或者默认编译文件名为Dockerfile,则可以使用下面的命令
1
| docker build -t tomcat9:1.0 .
|
安装Mysql
1
| docker run -p 3306:3306 --name mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
|
所有数据库dump为sql文件
1
| docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"123456" ' > /usr/local/all-databases.sql
|
安装Redis
1
| docker run -p 6379:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
|
发布镜像到云
本地的容器提交为本地镜像
1
| docker commit -a iuin -m "new images" 容器ID centos:2.0
|
本地镜像推到云端
1 2 3 4 5
| docker login
docker tag [ImageId] iuin/centos:2.0
docker push iuin/centos:2.0
|