step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository “deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
#查看是否安装成功 查看容器的运行情况
docker ps
docker pull ubuntu
root@ubuntu:~# mkdir /root/web-dockerroot@ubuntu:~# cd /root/web-docker
将以下内容拷贝到root/web-docker/Dockerfile 下
FROM ubuntu:latest
MAINTAINER obtk-fly
ADD jdk-8u291-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_291
ENV CLASSPATH 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 PATH P A T H : PATH: PATH:JAVA_HOME/bin
CMD java -version
docker build -t obtk_fly_jdk1.8.0_121 .
docker run 镜像id
当看到jdk版本时代表jdk在docker容器中安装成功
创建新的文件Dockerfile
root@ubuntu:~/web-docker# mv Dockerfile Dockerfile-jdkroot@ubuntu:~/web-docker# touch Dockerfile
FROM obtk_fly_jdk1.8.0_121
MAINTAINER obtk-fly
ADD apache-tomcat-9.0.48.tar.gz /usr/local/
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.48
ENV PATH P A T H : PATH: PATH:CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.48/bin/catalina.sh run
docker build -t obtk-fly-tomcat-9.0.48 .
docker run -d -p 8081:8080 d682230f4641
# 拉取仓库的redis
FROM redis:5.0.14
MAINTAINER obtk-fly
# 将本地redis配置文件替换到镜像里
COPY redis.conf /usr/local/etc/redis/redis.conf
# 暴漏端口
EXPOSE 6379
# 启动命令
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
更改后密码为123456
docker build -t obtk-fly-redis .
** docker run -d -p 6379:6379 镜像ID**
此时可能会出现一个小问题,你会发现你的容器无法启动?
将/root/web-docker/redis.conf 配置文件中的daemonize 改为no,daemonize默认为yes,
主要原因是daemonize yes 和 -d 有冲突导致容器在启动时就失效了
创建成功啦!
文件名为:mymysql.yaml
### dockerfile 自定义mysql容器镜像
FROM mysql:latest
#使用官方mysql镜像最新版
RUN echo "###" >> /etc/mysql/my.cnf
RUN echo "log_bin = 1" >> /etc/mysql/my.cnf
#开启binlog日志,存储在默认位置
RUN echo "max_connections = 1050" >> /etc/mysql/my.cnf
RUN echo "mysqlx_max_connections = 1000" >> /etc/mysql/my.cnf
#最大连接数
RUN echo "wait_timeout=86400" >> /etc/mysql/my.cnf
RUN echo "interactive_timeout=86400" >> /etc/mysql/my.cnf
#空闲断开时长,秒
RUN echo "innodb_read_io_threads=4" >> /etc/mysql/my.cnf
RUN echo "innodb_write_io_threads=4" >> /etc/mysql/my.cnf
#设置使用多核cpu,默认使用4核,根据cpu核心数设置
docker build -f ./mymysql.yaml -t “mymysql:1” .
#-f指定dockerfile文件#-t指定新的镜像名称和版本号#注意末尾有个 “.”
docker # images#查看镜像,当有mymysql:1镜像,说明构建成功
docker run -itd --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mymysql:1
| 如果上面的镜像不行,直接再pull latest镜像docker run -p 3306:3306 -e MYSQL_DATABASE=workdb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
root@ubuntu:~/web-docker# docker exec -it mymysql bash
root@da041964f45d:/# mysql -uroot -p123456
Mysql8.0之前的版本
grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;
grant all privileges on *.* to ‘root‘@‘localhost‘ identified by ‘123456‘ with grant option;
MySql8.0之后的版本
mysql> alter user root@'%' identified by '123456';
mysql> grant all privileges on *.* to root@'%' with grant option;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #解决编码问题
#只要该句话运行成功即可
mysql> FLUSH PRIVILEGES;
mysql> quit
#退出mysql
<groupId>com.obtk</groupId>
<artifactId>just-redis-shiro</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
执行maven工具中的clean命令清除编译的target目录
再执行package包打包
打包完后在新编译的target目录下有一个jar包
#base image
FROM adoptopenjdk/openjdk8:latest
#类似于执行 linux指令
RUN mkdir /opt/app
#类似于linux copy指令
COPY just-redis-shiro-1.0.jar /opt/app/just-redis-shiro-1.0.jar
#对外端口
EXPOSE 8081
#执行命令 java -jar /opt/app/demo-docker.jar
CMD ["java", "-jar", "/opt/app/just-redis-shiro-1.0.jar"]
构建和运行 Jar 包程序的镜像
构建镜像:docker build -t just-sun .
运行容器:docker run -d -p 8081:8081 镜像ID