| title | Docker的应用 | |
|---|---|---|
| date | 2018-12-15 03:27:31 -0800 | |
| tags |
|
|
| categories |
|
💠
-
- 1.1. 个人镜像
- 1.2. Linux发行版
- 1.2.1. Ubuntu-ssh
- 1.2.2. Alpine-ssh
- 1.2.3. Centos-ssh
- 1.3. Java
- 1.4. NodeJs
- 1.5. 中间件
- 1.6. 数据库
- 1.6.1. PostgreSQL
- 1.6.2. Oracle
- 1.6.3. MySQL
- 1.6.4. MongoDB
- 1.6.5. Redis
- 1.7. 持续集成
- 1.8. Git服务器
- 1.8.1. 简易git-daemon
- 1.8.2. Gitea
- 1.8.2.1. 配置
- 1.9. 在线IDE
💠 2025-05-08 18:58:49
百度云
-
配置好SSH服务器的 alpine 3.6 | docker hub地址 | 百度镜像源:
hub.baidubce.com/mythos/alpine-ssh:1.0docker run --name sshd -p 8989:22 hub.baidubce.com/mythos/alpine-ssh:1.0- 设置root用户密码
docker exec -it sshd passwd - 登录
ssh -p 8989 root@localhost
-
Jenkins 镜像
hub.baidubce.com/mythos/jenkins:2.138.1 -
protobuf的编译环境以及2.5的源码在内
hub.baidubce.com/mythos/protoc-alpine-src:2.5- protobuf 的 Alpine 的 2.5版本
hub.baidubce.com/mythos/protoc-alpine:2.5 - protobuf 的 Ubuntu 的 2.5版本
hub.baidubce.com/mythos/protoc:2.5 - protobuf 的 Alpine 的 3.5.1版本
hub.baidubce.com/mythos/protoc-alpine:3.5.1
- protobuf 的 Alpine 的 2.5版本
只适合自己折腾, 不应该用于应用的镜像, 应用不该开放ssh
- 最为简单的是:
docker run -i -t --name ubuntu17 -p 34433:22 ubuntu /bin/bash- 为这些软件预留端口
ssh tomcat mysql postgresql mysql oracle nginx reids - 直接跑一个Ubuntu出来,预留出要用的端口,容器运行不会退出
- 进终端之后就
apt update才能安装软件,现在才知道这个命令的重要性
- 为这些软件预留端口
- 现在的问题是:能不能在已经运行的容器中添加端口映射??要是用到途中发现端口少了就麻烦了,解决方法可以是commit成镜像再跑出一个容器出来,
- 最好是一个服务(应用)一个容器
FROM ubuntu
ENV DEBIAN_FRONTEND noninteractive
ADD id_rsa.pub /root/.ssh/authorized_keys
RUN apt-get update; \
apt-get install -y apt-utils debconf-utils iputils-ping wget curl htop ssh tini;
RUN chmod 700 /root/.ssh; \
chmod 600 /root/.ssh/authorized_keys;
ENTRYPOINT ["/usr/bin/tini", "--"]
EXPOSE 22mkdir tmp && cd tmp && cp ~/.ssh/id_rsa.pub .复制公钥docker build . -t myth:ssh构建镜像docker run -i -t --name myth -p 30001:22 myth:ssh /bin/bashdocker start myth每次启动容器需要手动执行 service ssh start
- dockerfile: alpine-ssh
- 也可以使用百度云镜像
docker pull hub.baidubce.com/mythos/alpine-ssh:1.0
- 也可以使用百度云镜像
-
Official: Java
Oracle| Official: OpenJDK从7开始 -
个人基于以上镜像 设置好CST中国时区jdk-alpine-cst可以学习一波DockerfileGithub: Dockerfile
-
Java7
docker pull java:7u121-jdk-alpine -
Java8
docker pull frolvlad/alpine-java:jdk8.202.08-slim或者配置好时区的镜像mythkuang/jdk-alpine-cst:8.181
Tips
-
docker run 时加上
--cap-add=SYS_PTRACE解决 jmap -heap 1 时报错: Can't attach to the process: ptrace
env.sh
JAVA_HOME=/path/to
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATHFROM myth:ssh
ADD *.tgz jdk.tgz
ADD env.sh
RUN apt install vim unzip ; \
cat env.sh >> /root/.bashrc;
EXPOSE 22
ENTRYPOINT ["/usr/bin/tini", "--"]-
简单启动
docker run --name some-mysql -p 3360:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag- 容器中默认配置文件为
/etc/mysql/conf.d/docker.cnf
- 容器中默认配置文件为
-
或者挂载自定义配置文件 主要是配置编码 以及设定时区
docker run --name mysql-5.7 -v 配置文件目录:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=mythos1104 -e TZ=Asia/Shanghai -p 3360:3306 -d mysql:5.7
-
连接
mysql -h 127.0.0.1 -P 3360 -uroot -pmythos1104
最简单方式, 前提是已经安装好 docker-compose
- Github
克隆项目,在该目录下执行命令docker-compose up -d既可创建 正确时区, utf8编码的数据库
- 获取镜像:
docker pull redis使用docker pull redis:alpine镜像可以更小 - 运行默认配置的容器:
docker run --name test-redis -p 6667:6379 -d redis - 或者 使用本地配置文件启动redis容器
sudo docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
数据迁移(RDB方式)复制rdb文件到容器内 /data/dump.rdb , kill -9 redis进程,启动 redis
- flow.ci 可以学习compose
基于git-daemon构建一个Docker镜像, 跑起来直接做git服务器 | 学习使用git-daemon命令
# 创建一个挂载了本地文件夹的git仓库,并关联到nginx,目录结构和上文一致
docker run --name git-repos -it -v /home/kuang/Repository/:/root/Repository/ --link mynginx:mynginx alpine
# 进入容器
docker exec -it git-repos ash
# 安装git
apk update
apk add git git-daemon
# 启动服务
git daemon --export-all --base-path="/root/Repository" --port=55443通过 daemon 能下拉提交代码, nginx 能在线浏览文件
- docker 安装 gitea
gitea是一个自助git服务,基于git - gitea配置文件说明
配置SSH
只要没有禁用掉SSH, 就能和Github一样使用SSH操作仓库, 为了避免其他进程的端口冲突, 单独设置端口 例如: 6002映射到了22上
~/.ssh/config
Host git.kuangcp.com
HostName 111.111.111.111
User git
Port 6002
IdentityFile /home/kcp/.ssh/id_rsa
然后就能正常使用了
-
Coding平台的WebIDE
-
eclipse che
-
coder-sever
BS模式的VSCode
Github Topic
Running GUI apps with Docker
在Docker for Windows中运行GUI程序
docker run -d --name nextcloud -p 8008:80 -v /data/nextcloud:/var/www/html nextcloud
- 创建一个Ubuntu/alpine 容器运行起来
- 下载 Github Release
- 安装 g++ make
- 编译安装下载的源码 进入目录
./configure --prefix=/usr && make && make check && make install