创建支持SSH服务的镜像
一、基于commit命令创建
docker commit CONTAINER [REPOSITORY [:TAG]]
1、使用ubuntu镜像创建一个容器
docker run -it ubuntu /bin/bash
2、配置软件源
root@8bfbf48c59f8:/# cp /etc/apt/sources.list /etc/apt/sources.list.bak
root@8bfbf48c59f8:/# apt-get update
root@8bfbf48c59f8:/# apt-get install vim
root@8bfbf48c59f8:/# vim /etc/apt/sources.list //配置阿里云软件源
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
root@8bfbf48c59f8:/# apt-get update
3、安装和配置SSH服务
root@8bfbf48c59f8:/# apt-get install openssh-server
root@8bfbf48c59f8:/# mkdir -p /var/run/sshd
root@8bfbf48c59f8:/# /usr/sbin/sshd -D &
[]
root@8bfbf48c59f8:/# jobs
[]+ Running /usr/sbin/sshd -D &
root@8bfbf48c59f8:/# apt-get install net-tools
root@8bfbf48c59f8:/# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp6 ::: :::* LISTEN /sshd
root@8bfbf48c59f8:/# sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
root@8bfbf48c59f8:/# mkdir root/.ssh
root@8bfbf48c59f8:/# vim root/.ssh/authorized_keys
root@8bfbf48c59f8:/# vim /run.sh
#!/bin/bash
/usr/sbin/sshd -D
root@8bfbf48c59f8:/# chmod +x /run.sh
root@8bfbf48c59f8:/# exit
4、保存镜像
[root@CentOS702 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bfbf48c59f8 ubuntu "/bin/bash" minutes ago Exited () seconds ago reverent_lumiere
05c71189c30e ubuntu "/bin/bash" hours ago Exited () hours ago wonderful_wright
387d42ee191b busybox "sh" hours ago Exited () hours ago priceless_wing
d91b7c33a198 training/webapp "python app.py" hours ago Up hours 0.0.0.0:->/tcp web
7e17a1d0cb21 training/postgres "su postgres -c '/..." hours ago Up hours /tcp db
[root@CentOS702 ~]# docker commit 8bfb sshd:ubuntu
sha256:34aafa7f58cae9f55bab2183f0c14dcc065dcfd3cc772115808e9c30d1680889
[root@CentOS702 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sshd ubuntu 34aafa7f58ca seconds ago MB
busybox latest c75bebcdd211 weeks ago 1.11 MB
haproxy latest c481d2544260 weeks ago MB
liuyongsheng614/test latest c400af73564b months ago MB
test latest c400af73564b months ago MB
ubuntu latest 0ef2e08ed3fa months ago MB
training/webapp latest 6fae60ef3446 years ago MB
training/postgres latest 6fa973bb3c26 years ago MB
5、使用镜像
[root@CentOS702 ~]# docker run -d -p : sshd:ubuntu /run.sh
d4ad0fcf769edf268854e7b5f1b0e62ed78a52b836cf3b2f4f1a97630835696e
[root@CentOS702 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4ad0fcf769e sshd:ubuntu "/run.sh" seconds ago Up seconds 0.0.0.0:->/tcp cranky_stonebraker
d91b7c33a198 training/webapp "python app.py" hours ago Up hours 0.0.0.0:->/tcp web
7e17a1d0cb21 training/postgres "su postgres -c '/..." hours ago Up hours /tcp db
[root@CentOS702 ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp6 ::: :::* LISTEN /docker-proxy
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /docker-proxy
[root@CentOS702 ~]# ssh 192.168.20.107 -p
The authenticity of host '[192.168.20.107]:10022 ([192.168.20.107]:10022)' can't be established.
ECDSA key fingerprint is c4:7d:d1:::a2:7a::::f7:::ed:7c:e7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.20.107]:10022' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04. LTS (GNU/Linux 3.10.-514.10..el7.x86_64 x86_64) * Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law. root@d4ad0fcf769e:~# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:04
inet addr:172.17.0.4 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:47 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7349 (7.3 KB) TX bytes:6493 (6.4 KB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
二、使用Dockerfile创建
1、创建工作目录
[root@CentOS702 ~]# mkdir sshd_ubuntu
[root@CentOS702 ~]# cd sshd_ubuntu/
[root@CentOS702 sshd_ubuntu]# touch Dockerfile run.sh
[root@CentOS702 sshd_ubuntu]# ls
Dockerfile run.sh
2、编写run.sh脚本和authorized_keys文件
[root@CentOS702 sshd_ubuntu]# vim run.sh
#!/bin/bash
/usr/sbin/sshd -D
[root@CentOS702 sshd_ubuntu]# cat ~/.ssh/id_rsa.pub > authorized_keys
3、编写Dockerfile
[root@CentOS702 sshd_ubuntu]# vim Dockerfile
# 设置继承镜像
FROM ubuntu:latest # 提供一些作者的信息
MAINTAINER from www.speedlinux.cn by Release (@qq.com) # 下面开始运行命令,此处更改ubuntu的源为国内阿里云的源
RUN echo "# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted" > /etc/apt/sources.list
RUN echo "deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties" >>/etc/apt/sources.list
RUN echo "deb http://archive.canonical.com/ubuntu xenial partner" >>/etc/apt/sources.list
RUN echo "deb-src http://archive.canonical.com/ubuntu xenial partner" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >>/etc/apt/sources.list
RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >>/etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >>/etc/apt/sources.list
RUN apt-get update # 安装ssh服务
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh # 取消pam限制
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd # 复制配置文件到相应位置,并赋予脚本可执行权限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod /run.sh # 开放端口
EXPOSE # 设置自启动命令
CMD ["/run.sh"]
4、创建镜像
[root@CentOS702 sshd_ubuntu]# ls
authorized_keys Dockerfile run.sh
[root@CentOS702 sshd_ubuntu]# docker build -t sshd:dockerfile .
Sending build context to Docker daemon 6.656 kB
Step / : FROM ubuntu:latest
---> 0ef2e08ed3fa
Step / : MAINTAINER from www.speedlinux.cn by Release (@qq.com)
---> Running in 44882909365e
---> 8d50ef4f2875
Removing intermediate container 44882909365e
Step / : RUN echo "# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted" > /etc/apt/sources.list
---> Running in 0a3152990479
---> 1d3c31769bc0
Removing intermediate container 0a3152990479
Step / : RUN echo "deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties" >>/etc/apt/sources.list
---> Running in 8e19f8639f38
---> 4cc6a24ec929
Removing intermediate container 8e19f8639f38
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" >>/etc/apt/sources.list
---> Running in 070e4db1acc1
---> 502c87d04907
Removing intermediate container 070e4db1acc1
Step / : RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
---> Running in 6238dee9c025
---> 72b44efd5a2f
Removing intermediate container 6238dee9c025
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >>/etc/apt/sources.list
---> Running in 68523ca3d40a
---> 96e2b55b2e4a
Removing intermediate container 68523ca3d40a
Step / : RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
---> Running in 0df0eb2c8e23
---> 266ecc8525ed
Removing intermediate container 0df0eb2c8e23
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >>/etc/apt/sources.list
---> Running in 325f1e6b1a1f
---> c9c8a4f2f79f
Removing intermediate container 325f1e6b1a1f
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >>/etc/apt/sources.list
---> Running in 087d9cadadf9
---> 4036f74f16d0
Removing intermediate container 087d9cadadf9
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >>/etc/apt/sources.list
---> Running in 28484ebf4379
---> 75f1731366c9
Removing intermediate container 28484ebf4379
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >>/etc/apt/sources.list
---> Running in 66a67ef0b576
---> ccc1b7f56d23
Removing intermediate container 66a67ef0b576
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list
---> Running in d29d31d63c6c
---> 16c956be72ba
Removing intermediate container d29d31d63c6c
Step / : RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties" >>/etc/apt/sources.list
---> Running in 87381cbe9dca
---> 3c9264c6b39f
Removing intermediate container 87381cbe9dca
Step / : RUN echo "deb http://archive.canonical.com/ubuntu xenial partner" >>/etc/apt/sources.list
---> Running in 398b91ef3ae5
---> e4f0621f0ef2
Removing intermediate container 398b91ef3ae5
Step / : RUN echo "deb-src http://archive.canonical.com/ubuntu xenial partner" >>/etc/apt/sources.list
---> Running in 461523f06aa0
---> 960544031c3c
Removing intermediate container 461523f06aa0
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >>/etc/apt/sources.list
---> Running in 8f8a3969969f
---> 1d2c9628b2a2
Removing intermediate container 8f8a3969969f
Step / : RUN echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties" >>/etc/apt/sources.list
---> Running in eb72116f4998
---> 1ac2cb45d8b2
Removing intermediate container eb72116f4998
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >>/etc/apt/sources.list
---> Running in 1e5a3301eda9
---> c8925f180f39
Removing intermediate container 1e5a3301eda9
Step / : RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >>/etc/apt/sources.list
---> Running in c50e237ab54d
---> 4fe433abdb4c
Removing intermediate container c50e237ab54d
Step / : RUN apt-get update
--------此处省略部分内容---------
Step / : RUN mkdir -p /var/run/sshd
---> Running in 6317fd28784f
---> db6e02247a36
Removing intermediate container 6317fd28784f
Step / : RUN mkdir -p /root/.ssh
---> Running in a9c8f95ea325
---> 116fcfbb12fe
Removing intermediate container a9c8f95ea325
Step / : RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
---> Running in 4639a1286359
---> 1ba44701c688
Removing intermediate container 4639a1286359
Step / : ADD authorized_keys /root/.ssh/authorized_keys
---> 49b26370e4e1
Removing intermediate container 80eb3c62eb53
Step / : ADD run.sh /run.sh
---> e8bb99bff877
Removing intermediate container fffd66d00982
Step / : RUN chmod /run.sh
---> Running in 16ab718f15a3
---> 7ba5ff9e62a1
Removing intermediate container 16ab718f15a3
Step / : EXPOSE
---> Running in 025cb23da1eb
---> dc4d028afb5d
Removing intermediate container 025cb23da1eb
Step / : CMD /run.sh
---> Running in e744919eb6c9
---> 29b43626dfdc
Removing intermediate container e744919eb6c9
Successfully built 29b43626dfdc
[root@CentOS702 sshd_ubuntu]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sshd dockerfile 29b43626dfdc minutes ago MB
sshd ubuntu 34aafa7f58ca days ago MB
busybox latest c75bebcdd211 weeks ago 1.11 MB
haproxy latest c481d2544260 weeks ago MB
liuyongsheng614/test latest c400af73564b months ago MB
test latest c400af73564b months ago MB
ubuntu latest 0ef2e08ed3fa months ago MB
training/webapp latest 6fae60ef3446 years ago MB
training/postgres latest 6fa973bb3c26 years ago MB
5、测试镜像,运行容器
[root@CentOS702 sshd_ubuntu]# docker run -d -p : sshd:dockerfile
[root@CentOS702 sshd_ubuntu]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
618bff49cfc4 sshd:dockerfile "/run.sh" seconds ago Up seconds 0.0.0.0:->/tcp reverent_ride
[root@CentOS702 sshd_ubuntu]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /docker-proxy
[root@CentOS702 sshd_ubuntu]# ssh 192.168.20.107 -p
The authenticity of host '[192.168.20.107]:10022 ([192.168.20.107]:10022)' can't be established.
ECDSA key fingerprint is :8e:::1b:1a:a8:b6::4c:2a:8d:0b:::.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.20.107]:10022' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04. LTS (GNU/Linux 3.10.-514.10..el7.x86_64 x86_64) * Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law. root@618bff49cfc4:~# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:152 errors:0 dropped:0 overruns:0 frame:0
TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:197733 (197.7 KB) TX bytes:18202 (18.2 KB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
创建支持SSH服务的镜像的更多相关文章
- 使用Dockerfile创建支持SSH服务的镜像
1.前面我们学习了使用Dockerfile,那接下来我们就用Dockerfile创建一个支持SSH服务的镜像. 2.首先创建一个目录ssh_centos [root@rocketmq-nameserv ...
- ubuntu-docker入门到放弃(八)创建支持SSH服务的镜像
我们知道进入docker容器可以使用attach.exec等命令来操作和管理,但是如果需要远程登录并管理容器,就需要ssh服务的支持了. 1.基于commit命令创建 docker提供了commit命 ...
- docker如何创建支持SSH服务的镜像
一般情况下,Linux系统管理员通过SSH服务来管理操作系统,但Docker的很多镜像是不带SSH服务的,那么我们怎样才能管理操作系统呢?在第一部分中我们介绍了一些进入容器的办法,比如用attach. ...
- Docker(2):使用Dockerfile创建支持SSH服务的镜像
1.创建工作目录 # mkdir sshd_ubuntu # ls 在其中,创建Dockerfile和run.sh文件 # cd sshd_ubuntu/ # touch Dockerfile run ...
- docker基于commit命令创建支持ssh服务的镜像
以centos为基础,目的使用ssh服务远程连接docker容器. 环境:宿主机centos7(宿主机ip地址为192.168.164.130),直接搜索docker的centos镜像,下载最新版本. ...
- docker基于Dockerfile命令创建支持ssh服务的镜像
首先,创建一个sshd_centos工作目录: [root@localhost ~]# mkdir sshd_centos [root@localhost ~]# cd sshd_centos [ro ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像 1. 首先创建一个Dockerfile文件.文件内容例如以下 # 选择一个已有的os镜像作为基础 FROM cento ...
- 创建支持ssh服务的docker容器和镜像
http://www.kongxx.info/blog/?p=57 1. 这里使用的centos作为容器,所以首先下载centos的imagessudo docker pull centos 2. 下 ...
随机推荐
- [jzoj 4668] [NOIP2016提高A组模拟7.19] 腐败 解题报告(质数分类+慢速乘)
题目链接: http://172.16.0.132/senior/#main/show/4668 题目: 题解: 考虑把A数组里的每个元素分解质因数,对于每个质因数开一个vector存一下包含这个质因 ...
- jqGrid多级表格的实现
原博主链接:http://blog.csdn.net/dreamstar613/article/details/54616503 jqGrid多级表格(可N级) 主要用的方法: subGridRowE ...
- 解决IE下的li中img多余4px的问题--IE6有的问题
为了对比明显,这里用img标签占位,但是背景用纯黑色 <ul> <li> <img src="" alt="" />< ...
- swift语言点评十八-异常与错误
1.错误类型与枚举的结合 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNee ...
- ZBrush笔刷属性栏简介
在笔刷的属性栏当中,最先要了解和掌握的就是Zadd和Zsub两个按钮,当激活Zadd按钮时,我们雕刻的形态向屏幕外突出:当激活Zsub时,我们雕刻的形体就会向屏幕内凹陷.如果在激活Zadd按钮时,雕刻 ...
- Python内置数据结构之字符串str
1. 数据结构回顾 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但是字符串是不可变序列,因此所有的元素赋值和切片赋值都是非法的. >>> ...
- ajax请求携带 cookie
之前都有这样一个理解:ajax请求时是不会自动带上cookie的,要是想让他带上的话,必须哟啊设置withCredential为true.这个说法会让人产生完全扭曲的误解,我就是其中之一.完整的无歧义 ...
- BZOJ 2141 排队(CDQ分治)
我们把每一次交换看做两个插入两个删除.然后就是一个三维偏序.时间一维,下标一维,权值一维. #include<iostream> #include<cstring> #incl ...
- C语言传参的类型匹配
有一个这样的问题: 形参const char *p和实参char *c可以匹配 形参const char**p和实参char**c不可以匹配 注:argument和parameter:严格而言,par ...
- Maven命令下载源码和javadocs
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...