Docker基础

Ubuntu安装

  1. 获取最新版本的 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
  2. 启动docker 后台服务

    1
    sudo service docker start
  3. 测试运行hello-world

    1
    docker run hello-world
  4. 镜像加速, 配置Daemon
    创建 /etc/docker/daemon.json 文件,添加下面的内容:

    1
    2
    3
    {
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }

Docker 使用

拉取镜像

1
docker pull tomcat

根据镜像创建容器

下面这个命令如果没有镜像,回去仓库去获取, –name 取一个名字, -p 进行端口映射

1
docker run --name tomcat -p 8080:8080 tomcat:latest

查看镜像

1
docker images

进入容器

1
docker exec -it tomcat bash

查看正在运行的容器

1
docker ps

部署项目到tomcat

把项目打包成war文件,假设为demo.war, 然后在war包所在的目录,执行以下命令, war包会自动解压,然后执行下面命令重启容器

1
docker cp demo.war mytomcat:/usr/local/tomcat/webapps
1
docker restart mytomcat

测试tomcat容器

如果没有war包, 当然也可以先自己写一个index.html文件, 然后拷贝到容器中,

1
<h1>Demo!</h1>
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 pull redis:3.2
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
文章作者: Fulin Zhang
文章链接: https://iuin.github.io/2019/docker-basic/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人博客