docker

Docker
docker search; docker pull; docker build -t name dockerfilepath;
docker images; docker rmi ; docker run --name 容器名 -d -p 内部端口:外部端口 imagename 版本
docker run -i -t --name sonar -d link mysql:db sonar -server 容器间进行连接
docker ps -a; docker start ; docker kill;
docker run -p 8000:3000 -it containername /bin/bash
docker exec -it [containerID] /bin/bash

docker save 镜像名 -o 路径/文件.tar

加载镜像 docker load -i 文件.tar  

使用Docker发布容器
关闭防火墙

docker-compose 管理服务
docker-compose up 根据docker-compose.yml创建容器并启动相应服务
docker-compose start
docker-compose scale data=2(启用负载均衡)
Spring Cloud 的Ribbon的ribbon.eureka.enabled=true

dockerFile的编写

## Dockerfile文件格式

# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..

# 1、第一行必须指定 基础镜像信息
FROM ubuntu

# 2、维护者信息
MAINTAINER docker_user docker_user@email.com

# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo " daemon off;" >> /etc/nginx/nginx.conf

# 4、容器启动执行指令
CMD /usr/sbin/nginx

例子:
Dockerfile文件:
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
vi Dockerfile
创建镜象:
docker build -t nginx:v1 
创建容器
docker run --name docker_nginx_v1 -d -p 80:80 nginx:v1

 redis客户端

docker run -dit --restart unless-stopped redis

 docker run -it --link redis1 --rm docker.io/redis redis-cli -h redis1 -p 6379

docker容器,我们想直接通过ssh链接docker容器,而不是通过宿主机进入的方式

首先,先了解一下docker,docker 命令

启动docker,进入docker容器

1.如果是守护态容器,可以通过下面的方式进入:

docker exec -it 42d099e3fdca /bin/bash (3c0498ea5254是CONTAINER ID)

2.进入docker后,使用passwd密码来修改密码(如提示没有这个命令行使用yum install passwd安装):

passwd
    xxx密码
    xxx确认密码

3.安装Openssh(docker 容器中执行)

sudo yum -y install openssh-server
$ sudo yum -y install openssh-clients

修改SSH配置文件以下选项,去掉#注释,将四个选项启用:

vi /etc/ssh/sshd_config

RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录

重启ssh服务,并设置开机启动:

service sshd restart
$ chkconfig sshd on

4.退出容器并保存更改

使用exit命令或者ctrl+C来退出当前运行的容器:

[root@ffe81683c404 /]# exit

注意:上面ffe81683c404是容器的ID,退出后用于保存的唯一ID。

当结束后,我们使用 exit 来退出

现在我们的容器已经被我们改变了,使用 docker commit 命令,将当前的容器生成镜像。

sudo docker commit -m 'install openssh' -a 'Docker Newbee' ffe81683c404  centos6-jdk7:ssh
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

-m:来指定提交的说明信息,跟我们使用的版本控制工具一样

-a 可以指定更新的用户信息

ffe81683c404: 创建镜像的容器的ID,就是上面的容器id,也就是我们刚才进入的容器id

centos6-jdk7:ssh: 目标镜像的仓库名和 tag 信息,冒号前面部分是生成的镜像的仓库名字,冒号后面是镜像tag

创建成功后会返回这个镜像的 ID 信息,查看镜像

docker images

5.启动新的容器并打通22端口

将新的镜像启动,并将docker服务器的50001端口映射到容器的22端口上:

docker run -d -p 2222:22 centos6-jdk7:ssh /usr/sbin/sshd -D

然后用xshell连接,

ip: 为宿主主机的ip,而不是docker容器的ip

端口:就是上面的2222

用户名: root

密码: 就是上面password部分设置的密码

即可连接成功

6.关掉该容器

在宿主机通过 docker stop 容器id 即可关闭

启动容器 docker start 容器id

启动后,就可以用xshell进行连接。

 
原文地址:https://www.cnblogs.com/mxz1994/p/8820144.html