如何创建docker镜像(学习与使用docker)
- 首先在docker官网进行安装本地可执行文件docker客户端
看到如下的绿色标志即是docker在正常运行: - 其次假设你已经有一个git本地的仓库了
那么如何构建build docker文件呢?
采用如下命令:
docker build -t myapp .
注意这个命令是需要本地安装的docker启动起来之后再执行,否则会出现无法找到文件的错误
- 其次build完成之后,可以在本地的docker客户端看到自己刚才build的景象的内容:
比如刚才构建的镜像名称叫做: myapp
可以看到现在出现了: - run你刚才build好的镜像文件:
docker run myapp
这里是刚才在dockerfile文件内写的 输出语句,当执行的时候,应该会输出指定内容:
CMD ["Hello daniel"]
这时候就会出现
Notice that the CMD can be overridden when running the image.
- 即使在dockerfile中指定的输出语句是:
cmd [“hello daniel”]
但是 当你在执行dokcerfile的时候,是可以修改输出内容的:
比如:
docker run myapp joe
那么输出将会变成:
This is how you can change the input to your program once it has been “dockerized” to run as an image inside a container
当你在feature分支的内容commit之后,check out到master 分支,当你进行merge合并到时候:
(假设你当前在master分支,且feature分支的代码已经commit了):
git merge dockerfix
这个时候,应该就可以把feature分支的代码merge到master分支
(通常如果会有conflict,也会在这一步进行报错)
如果报错了git conflict,那么记得第一步是要git status查看哪些代码文件是存在修改但是没有被保存或者commit的
1. docker如何用命令查看镜像的container列表以及状态:
docker ps -a
2. 根据所列出来的list查看某一个object的具体信息:
docker top <container_id>
3. 获取host主机的ip地址:
docker inspect [your_container_name] | grep IP
4.指定端口号启动docker
docker run -v xxx --name xxx -p 16022:22 -it xxx
eg:docker run -v D:\datasets\uniform\data:/usr/src/app/uniform/data --name yolov5-lbh -p 16022:22 -it ultralytics/yolov5:latest
5.如果不成功,可以先尝试ssh链接是否能够直接成功,如果这个不可以,那么pycharm一定无法成功链接:
ssh root@127.0.0.1 -p 16022
4. 如果报错:检查以下内容:
Put the content of $HOME/.ssh/id_rsa.pub in $HOME/.ssh/authorized_keys
5. nano 退出方式
Ctrl+X
首先在pycharm底部services里面找到之前启动过的docker文件,在启动start了docker的指定镜像后,如果发现右边的romote链接失败:
解决办法:
1. 进入docker的命令行
2. apt-get update (第一次需要)
apt-get install sudo (第一次需要)
3. #安装SSH服务
sudo apt-get install openssh-server
#启动SSH服务
sudo /etc/init.d/ssh start
#查看SSH服务状态
sudo service ssh status
4. passwd root #建议设置成很简单的root就可以
5. nano /etc/ssh/sshd_config #用nano查看并且配置下面的信息
#启用 RSA 认证
RSAAuthentication yes
#启用公钥私钥配对认证方式
PubkeyAuthentication yes
#公钥文件路径(和上面生成的文件同)
AuthorizedKeysFile .ssh/authorized_keys
#root能使用ssh登录
PermitRootLogin yes
6. service ssh restart # 重启一下service(大多数情况下可以首先使用过这个command)
7. 冲新尝试连接,大多数情况下应该可解决问题
这样就可以算是链接成功了镜像内部的文件配置的python解释器
reference
第二次任务记录:
记录:
mac上的localhost的默认端口是80,即当你在浏览器访问localhost的时候就等于:
localhost:80
git add . 全部添加之后,需要撤回到添加之前的上一步:
git reset HEAD
指定添加某一个文件,然后给这个文件单独commit并且添加commit的信息message内容
git add src/index.html && git commit -m "added new title"
在本地进行操作的时候,一般不要动master分支,都是需要在需要修改的时候创建一个新的feature分支,然后在新的分支上更改,然后commit 并且 push到git,然后由管理员来决定merge和pull request的分支合并处理
可以看到,这里的push都不是向master的
基本上工作流程是:
- 有一个master branch
- 你有一个新的需求,git check out -b feature1
- 现在你在 feature1 branch上,然后你进行更改(这时候尽量在updated的master基础上修改)
- 修改好之后你的feature完工了, git push (–set-upstream -f) origin feature1
- 此时如果成功了,本地的修改就已经到了远程的feature1分支
- 然后你就可以去你的github主页,可以看到一个新的push,然后决定提交merge request给管理员
- 这个时候管理员他的终端就可以看到,然后决定进行代码审查,并且回复消息或者决定接受新的更改到master
- 然后管理员如果更新的master的分支代码,你在本地需要重新 git pull origin master (对origin的执行pull master的操作,即为用master的代码更新本地的代码)
- 这个时候确保你本地的master已经是最新的了,就可以删掉feature1的分支修改代码,保存master的
- 如果有新的需求,就可以重新开启一个feature2然后重复执行step 2往后的步骤!
respect!!!